Example #1
0
 def test_move_one_from_start_to_center(self):
     before = parse_tab_lines([
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
         'f.0.5\ta\turl',
         'f.0.6\ta\turl',
         'f.0.7\ta\turl',
         'f.0.8\ta\turl',
     ])
     after = parse_tab_lines([
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
         'f.0.0\ta\turl',
         'f.0.5\ta\turl',
         'f.0.6\ta\turl',
         'f.0.7\ta\turl',
         'f.0.8\ta\turl',
     ])
     commands = infer_move_commands(before, after)
     self.assertEqual(commands, [(0, 0, 4)])
     actual_after = apply_move_commands(before, commands)
     self.assertEqual(actual_after, after)
Example #2
0
 def test_crossings(self):
     before = parse_tab_lines([
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
         'f.0.5\ta\turl',
         'f.0.6\ta\turl',
         'f.0.7\ta\turl',
         'f.0.8\ta\turl',
     ])
     after = parse_tab_lines([
         'f.0.4\ta\turl',
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.6\ta\turl',
         'f.0.7\ta\turl',
         'f.0.8\ta\turl',
         'f.0.5\ta\turl',
     ])
     commands = infer_move_commands(before, after)
     self.assertEqual(commands, [(4, 0, 0), (5, 0, 8)])
     actual_after = apply_move_commands(before, commands)
     self.assertEqual(actual_after, after)
Example #3
0
 def test_decreasing_ids_from_start_to_end(self):
     before = parse_tab_lines([
         'f.0.10\ta\turl',
         'f.0.9\ta\turl',
         'f.0.8\ta\turl',
         'f.0.7\ta\turl',
     ])
     after = parse_tab_lines([
         'f.0.9\ta\turl',
         'f.0.8\ta\turl',
         'f.0.7\ta\turl',
         'f.0.10\ta\turl',
     ])
     commands = infer_move_commands(before, after)
     self.assertEqual(commands, [(10, 0, 3)])
     actual_after = apply_move_commands(before, commands)
     self.assertEqual(actual_after, after)
Example #4
0
 def test_move_pair_from_end_to_start(self):
     before = parse_tab_lines([
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
     ])
     after = parse_tab_lines([
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
     ])
     commands = infer_move_commands(before, after)
     # self.assertEqual(commands, [(1, 0, 4), (0, 0, 3)])
     actual_after = apply_move_commands(before, commands)
     self.assertEqual(actual_after, after)
Example #5
0
 def test_move_several_downwards(self):
     before = parse_tab_lines([
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.2\ta\turl',
         'f.0.3\ta\turl',
         'f.0.4\ta\turl',
         'f.0.5\ta\turl',
         'f.0.6\ta\turl',
     ])
     after = parse_tab_lines([
         'f.0.2\ta\turl',
         'f.0.4\ta\turl',
         'f.0.6\ta\turl',
         'f.0.0\ta\turl',
         'f.0.1\ta\turl',
         'f.0.3\ta\turl',
         'f.0.5\ta\turl',
     ])
     commands = infer_move_commands(before, after)
     actual_after = apply_move_commands(before, commands)
     self.assertEqual(actual_after, after)