def test_algorithm_returns_the_item_in_the_list_for_given_equivalence_class(self):
     col = [10]
     r = lambda item: item * item
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert partitioned[100][0] == 10
 def test_algorithm_returns_proper_number_of_items_for_given_equivalence_class(self):
     col = [10]
     r = lambda item: item * item
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert len(partitioned[100]) == 1
 def test_algorithm_returns_a_list_for_given_equivalence_class(self):
     col = [10]
     r = lambda item: item * item
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert isinstance(partitioned[100], list)
 def test_algorithm_returns_proper_equivalence_class(self):
     col = [10]
     r = lambda item: item * item
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert partitioned.has_key(100)
Exemple #5
0
    def __group_collection(self, collection, group_expression):
        if isinstance(group_expression, NameExpression):
            expr_name = group_expression.name
            if "." in expr_name:
                rel = lambda item: reduce(getattr, expr_name, item)
            else:
                rel = lambda item: getattr(item, expr_name)
        else:
            rel = lambda item: eval(str(query.group_expression))

        return EquivalenceClassSetPartition.partition(collection, rel)
Exemple #6
0
    def __group_collection(self, collection, group_expression):
        if isinstance(group_expression, NameExpression):
            expr_name = group_expression.name
            if "." in expr_name:
                rel = lambda item: reduce(getattr, expr_name, item)
            else:
                rel = lambda item: getattr(item, expr_name)
        else:
            rel = lambda item: eval(str(query.group_expression))

        return EquivalenceClassSetPartition.partition(collection, rel)
 def test_algorithm_returns_proper_sets_for_multiple_values(self):
     col = [1,2,3,4,5]
     r = lambda item: item % 2 == 0 and "even" or "odd"
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert len(partitioned["even"]) == 2
     assert len(partitioned["odd"]) == 3
     
     assert partitioned["even"][0] == 2
     assert partitioned["even"][1] == 4
     assert partitioned["odd"][0] == 1
     assert partitioned["odd"][1] == 3
     assert partitioned["odd"][2] == 5
 def test_algorithm_returns_proper_sets_for_objects(self):
     class Value(object):
         def __init__(self, value):
             self.value = value
     
     col = [Value(1),Value(2),Value(3),Value(4),Value(5),]
     r = lambda item: item.value % 2 == 0 and "even" or "odd"
     
     partitioned = EquivalenceClassSetPartition.partition(col, r)
     
     assert len(partitioned["even"]) == 2
     assert len(partitioned["odd"]) == 3
     
     assert partitioned["even"][0].value == 2
     assert partitioned["even"][1].value == 4
     assert partitioned["odd"][0].value == 1
     assert partitioned["odd"][1].value == 3
     assert partitioned["odd"][2].value == 5        
 def test_algorithm_returns_a_dictionary(self):
     partitioned = EquivalenceClassSetPartition.partition([1], lambda item: item)
     assert isinstance(partitioned, dict)