Example #1
0
 def test_nine_elements(self):
     input_dominoes = [
         (1, 2),
         (5, 3),
         (3, 1),
         (1, 2),
         (2, 4),
         (1, 6),
         (2, 3),
         (3, 4),
         (5, 6),
     ]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #2
0
 def test_can_reverse_dominoes(self):
     input_dominoes = [(1, 2), (1, 3), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #3
0
 def test_three_elements(self):
     input_dominoes = [(1, 2), (3, 1), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #4
0
 def test_singleton_that_can_t_be_chained(self):
     input_dominoes = [(1, 2)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #5
0
 def test_singleton_cant_be_chained(self):
     input_dominoes = [(1, 2)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #6
0
 def test_disconnected_double_loop(self):
     input_dominoes = [(1, 2), (2, 1), (3, 4), (4, 3)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #7
0
 def test_need_backtrack(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (2, 4), (2, 4)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #8
0
 def test_disconnected_single_isolated(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (4, 4)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #9
0
 def test_need_backtrack(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (2, 4), (2, 4)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #10
0
 def test_disconnected_simple(self):
     input_dominoes = [(1, 1), (2, 2)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #11
0
 def test_disconnected_double_loop(self):
     input_dominoes = [(1, 2), (2, 1), (3, 4), (4, 3)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #12
0
 def test_cant_be_chained(self):
     input_dominoes = [(1, 2), (4, 1), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #13
0
 def test_can_reverse_dominoes(self):
     input_dominoes = [(1, 2), (1, 3), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #14
0
 def test_three_elements(self):
     input_dominoes = [(1, 2), (3, 1), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #15
0
 def test_can_t_be_chained(self):
     input_dominoes = [(1, 2), (4, 1), (2, 3)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #16
0
 def test_separate_loops(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (1, 1), (2, 2), (3, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #17
0
 def test_disconnected_simple(self):
     input_dominoes = [(1, 1), (2, 2)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #18
0
 def test_nine_elements(self):
     input_dominoes = [(1, 2), (5, 3), (3, 1), (1, 2), (2, 4), (1, 6),
                       (2, 3), (3, 4), (5, 6)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #19
0
 def test_disconnected_single_isolated(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (4, 4)]
     output_chain = can_chain(input_dominoes)
     self.refute_correct_chain(input_dominoes, output_chain)
Example #20
0
 def test_empty_input_empty_output(self):
     input_dominoes = []
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #21
0
 def test_separate_loops(self):
     input_dominoes = [(1, 2), (2, 3), (3, 1), (1, 1), (2, 2), (3, 3)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #22
0
 def test_singleton_input_singleton_output(self):
     input_dominoes = [(1, 1)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #23
0
 def test_empty_input_empty_output(self):
     input_dominoes = []
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)
Example #24
0
 def test_singleton_input_singleton_output(self):
     input_dominoes = [(1, 1)]
     output_chain = can_chain(input_dominoes)
     self.assert_correct_chain(input_dominoes, output_chain)