diff options
Diffstat (limited to 'test/lib/util.py')
-rw-r--r-- | test/lib/util.py | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/test/lib/util.py b/test/lib/util.py index 4c9892852..b512cf6b0 100644 --- a/test/lib/util.py +++ b/test/lib/util.py @@ -13,7 +13,7 @@ if jython: gc.collect() gc.collect() return 0 - + # "lazy" gc, for VM's that don't GC on refcount == 0 lazy_gc = gc_collect @@ -34,48 +34,48 @@ def picklers(): # end Py2K import pickle picklers.add(pickle) - + # yes, this thing needs this much testing for pickle in picklers: for protocol in -1, 0, 1, 2: yield pickle.loads, lambda d:pickle.dumps(d, protocol) - - + + def round_decimal(value, prec): if isinstance(value, float): return round(value, prec) - + # can also use shift() here but that is 2.6 only return (value * decimal.Decimal("1" + "0" * prec)).to_integral(decimal.ROUND_FLOOR) / \ pow(10, prec) - + class RandomSet(set): def __iter__(self): l = list(set.__iter__(self)) random.shuffle(l) return iter(l) - + def pop(self): index = random.randint(0, len(self) - 1) item = list(set.__iter__(self))[index] self.remove(item) return item - + def union(self, other): return RandomSet(set.union(self, other)) - + def difference(self, other): return RandomSet(set.difference(self, other)) - + def intersection(self, other): return RandomSet(set.intersection(self, other)) - + def copy(self): return RandomSet(self) - + def conforms_partial_ordering(tuples, sorted_elements): """True if the given sorting conforms to the given partial ordering.""" - + deps = defaultdict(set) for parent, child in tuples: deps[parent].add(child) @@ -101,7 +101,7 @@ def all_partial_orderings(tuples, elements): if not subset.intersection(edges[elem]): for sub_ordering in _all_orderings(subset): yield [elem] + sub_ordering - + return iter(_all_orderings(elements)) @@ -114,7 +114,7 @@ def function_named(fn, name): This function should be phased out as much as possible in favor of @decorator. Tests that "generate" many named tests should be modernized. - + """ try: fn.__name__ = name |