Ejemplo n.º 1
0
 def test_filter_and_empty(self):
     members = Members([Member('a'), Member('b')])
     tree = members.combinations()
     filtered = EvaluationService(
     ).pair_must_have_only_either_member_of_last_pair(
         Pairs([Pair(Member('a'), Member('b'))]), tree)
     self.assertEqual(filtered, [])
Ejemplo n.º 2
0
    def setUp(self):
        self.pairs = Pairs(
            [Pair(Member('a'), Member('b')),
             Pair(Member('c'), None)])

        self.one_pairs = Pairs([Pair(Member('a'), Member('b'))])

        self.empty_pairs = Pairs([])
Ejemplo n.º 3
0
    def test_run(self):
        save_pairs = Pairs(
            [Pair(Member('a'), Member('b')),
             Pair(Member('c'), None)])
        self.use_case.run(save_pairs)

        self.assertEqual([history.pairs for history in self.repository.list],
                         [save_pairs])
        self.assertEqual(
            [history.identity for history in self.repository.list],
            [PairsHistoryId('0')])
Ejemplo n.º 4
0
 def test_combinations(self):
     self.assertEqual(self.members.combinations(), [
         PairTree(Pair(Member('a'), Member('b')),
                  [PairTree(Pair(Member('c'), None), [])]),
         PairTree(Pair(Member('a'), Member('c')),
                  [PairTree(Pair(Member('b'), None), [])]),
         PairTree(Pair(Member('b'), Member('c')),
                  [PairTree(Pair(Member('a'), None), [])])
     ])
Ejemplo n.º 5
0
 def test_filter_same_pair2(self):
     history = [
         Pairs([Pair(Member('a'), Member('b')),
                Pair(Member('c'), None)]),
         Pairs([Pair(Member('a'), Member('c')),
                Pair(Member('b'), None)])
     ]
     pairs = PairTree.possible_pairs(self.members3.combinations())
     filtered_pairs = EvaluationService(
     ).pair_should_not_exist_same_pair_in_near_history(history, pairs)
     self.assertEqual(
         filtered_pairs,
         [Pairs([Pair(Member('b'), Member('c')),
                 Pair(Member('a'), None)])])
Ejemplo n.º 6
0
 def test_position_filter(self):
     history = [
         Pairs([Pair(Member('a'), Member('b')),
                Pair(Member('c'), None)]),
         Pairs([Pair(Member('a'), Member('c')),
                Pair(Member('b'), None)])
     ]
     tree = self.members3.combinations()
     possible_pairs = PairTree.possible_pairs(tree)
     filtered_tree = EvaluationService(
     ).member_is_must_not_in_same_position_at_three_times(
         history, possible_pairs)
     self.assertEqual(
         filtered_tree,
         [Pairs([Pair(Member('b'), Member('c')),
                 Pair(Member('a'), None)])])
Ejemplo n.º 7
0
 def test_filter(self):
     tree = self.members3.combinations()
     filtered_tree = EvaluationService(
     ).pair_must_have_only_either_member_of_last_pair(
         self.last_pairs3, tree)
     self.assertEqual(filtered_tree, [
         PairTree(Pair(Member('a'), Member('c')),
                  [PairTree(Pair(Member('b'), None), [])]),
         PairTree(Pair(Member('b'), Member('c')),
                  [PairTree(Pair(Member('a'), None), [])])
     ])
Ejemplo n.º 8
0
 def test_have_same__pairs2(self):
     self.assertTrue(not self.pairs.have_same(
         Pairs([Pair(Member('x'), Member('y')),
                Pair(Member('z'), None)])))
Ejemplo n.º 9
0
 def test_evaluate_five_times(self):
     history = [
         Pairs([
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), Member('d')),
             Pair(Member('e'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), Member('e')),
             Pair(Member('b'), None)
         ]),
         Pairs([
             Pair(Member('c'), Member('d')),
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), None)
         ]),
         Pairs([
             Pair(Member('d'), Member('e')),
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), None)
         ])
     ]
     members = Members(
         [Member('a'),
          Member('b'),
          Member('c'),
          Member('d'),
          Member('e')])
     pairs = EvaluationService().evaluate(history, members)
     self.assertEqual(pairs, [
         Pairs([
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), Member('d')),
             Pair(Member('e'), None)
         ])
     ])
Ejemplo n.º 10
0
 def test_in__pairs(self):
     self.assertTrue(Pair(Member('c'), None) in self.pairs)
Ejemplo n.º 11
0
    def test_run_with_history(self):
        self.repository.save(
            PairsHistory(
                PairsHistoryId('id'),
                Pairs(
                    [Pair(Member('a'), Member('b')),
                     Pair(Member('c'), None)])))

        pairs_list = self.use_case.run(
            Members([Member('a'), Member('b'),
                     Member('c')]))
        self.assertEqual(pairs_list, [
            Pairs([Pair(Member('a'), Member('c')),
                   Pair(Member('b'), None)]),
            Pairs([Pair(Member('b'), Member('c')),
                   Pair(Member('a'), None)])
        ])
Ejemplo n.º 12
0
 def load_member(self, message: pair_pb2.Member) -> Member:
     return Member(message.name)
Ejemplo n.º 13
0
 def setUp(self):
     self.members = Members([Member('a'), Member('b'), Member('c')])
     self.single_members = Members([Member('a')])
Ejemplo n.º 14
0
    def setUp(self):
        self.last_pairs3 = Pairs(
            [Pair(Member('a'), Member('b')),
             Pair(Member('c'), None)])
        self.members3 = Members([Member('a'), Member('b'), Member('c')])

        self.last_pairs5 = Pairs([
            Pair(Member('a'), Member('b')),
            Pair(Member('c'), Member('d')),
            Pair(Member('e'), None)
        ])
        self.members5 = Members(
            [Member('a'),
             Member('b'),
             Member('c'),
             Member('d'),
             Member('e')])
Ejemplo n.º 15
0
 def test_fold2(self):
     tree = PairTree(Pair(Member('a'), Member('b')), [
         PairTree(Pair(Member('c'), Member('d')),
                  [PairTree(Pair(Member('e'), None), [])]),
         PairTree(Pair(Member('c'), Member('e')),
                  [PairTree(Pair(Member('d'), None), [])])
     ])
     self.assertEqual([
         Pairs([
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), Member('d')),
             Pair(Member('e'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), Member('e')),
             Pair(Member('d'), None)
         ])
     ], tree.fold())
Ejemplo n.º 16
0
 def setUp(self):
     self.m1 = Member('a')
     self.m2 = Member('b')
Ejemplo n.º 17
0
 def test_filter_same_pair3(self):
     history = [
         Pairs([
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), Member('e')),
             Pair(Member('b'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('b')),
             Pair(Member('c'), Member('d')),
             Pair(Member('e'), None)
         ])
     ]
     tree = self.members5.combinations()
     s = EvaluationService()
     filtered_pairs = s.pair_should_not_exist_same_pair_in_near_history(
         history,
         PairTree.possible_pairs(
             s.pair_must_have_only_either_member_of_last_pair(
                 history[-1], tree)))
     self.assertEqual(filtered_pairs, [
         Pairs([
             Pair(Member('a'), Member('e')),
             Pair(Member('b'), Member('c')),
             Pair(Member('d'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('e')),
             Pair(Member('b'), Member('d')),
             Pair(Member('c'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('d')),
             Pair(Member('c'), Member('e')),
             Pair(Member('a'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), Member('d')),
             Pair(Member('c'), None)
         ])
     ])
Ejemplo n.º 18
0
 def test_select_first_pairs(self):
     self.assertEqual(
         self.members.select_first_pairs(),
         [(Pair(Member('a'), Member('b')), Members([Member('c')])),
          (Pair(Member('a'), Member('c')), Members([Member('b')])),
          (Pair(Member('b'), Member('c')), Members([Member('a')]))])
Ejemplo n.º 19
0
 def test_evaluate(self):
     last_pairs = Pairs([
         Pair(Member('a'), Member('b')),
         Pair(Member('c'), Member('d')),
         Pair(Member('e'), None)
     ])
     members = Members(
         [Member('a'),
          Member('b'),
          Member('c'),
          Member('d'),
          Member('e')])
     pairs = EvaluationService().evaluate([last_pairs], members)
     self.assertEqual(pairs, [
         Pairs([
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), Member('e')),
             Pair(Member('b'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('d')),
             Pair(Member('c'), Member('e')),
             Pair(Member('b'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('e')),
             Pair(Member('b'), Member('c')),
             Pair(Member('d'), None)
         ]),
         Pairs([
             Pair(Member('a'), Member('e')),
             Pair(Member('b'), Member('d')),
             Pair(Member('c'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('c')),
             Pair(Member('d'), Member('e')),
             Pair(Member('a'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('d')),
             Pair(Member('c'), Member('e')),
             Pair(Member('a'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), Member('c')),
             Pair(Member('d'), None)
         ]),
         Pairs([
             Pair(Member('b'), Member('e')),
             Pair(Member('a'), Member('d')),
             Pair(Member('c'), None)
         ]),
     ])
Ejemplo n.º 20
0
 def test_run(self):
     pairs_list = self.use_case.run(
         Members([Member('a'), Member('b'),
                  Member('c')]))
     self.assertEqual(pairs_list, [
         Pairs([Pair(Member('a'), Member('b')),
                Pair(Member('c'), None)]),
         Pairs([Pair(Member('a'), Member('c')),
                Pair(Member('b'), None)]),
         Pairs([Pair(Member('b'), Member('c')),
                Pair(Member('a'), None)])
     ])
Ejemplo n.º 21
0
 def test_getitem__pairs(self):
     self.assertEqual(self.pairs[1], Pair(Member('c'), None))
Ejemplo n.º 22
0
 def test_tail__pairs(self):
     self.assertEqual(self.pairs.tail(), Pairs([Pair(Member('c'), None)]))
Ejemplo n.º 23
0
 def test_select_first_pairs_with_single_members(self):
     self.assertEqual(self.single_members.select_first_pairs(),
                      [(Pair(Member('a'), None), Members([]))])