def test_inverse(self):
     s = cube3x3.initial_state
     for a in cube3x3.Action:
         s = cube3x3.transform(s, a)
         r = cube3x3.render(s)
         s = cube3x3.transform(s, cube3x3.inverse_action(a))
         r2 = cube3x3.render(s)
     self.assertEqual(s, cube3x3.initial_state)
    def test_sequence(self):
        acts = [
            cube3x3.Action.R, cube3x3.Action.t, cube3x3.Action.R,
            cube3x3.Action.D, cube3x3.Action.F, cube3x3.Action.d,
            cube3x3.Action.T, cube3x3.Action.R, cube3x3.Action.D,
            cube3x3.Action.F
        ]

        s = cube3x3.initial_state
        for a in acts:
            s = cube3x3.transform(s, a)
        r = cube3x3.render(s)
        for a in reversed(acts):
            s = cube3x3.transform(s, cube3x3.inverse_action(a))
        r = cube3x3.render(s)
        self.assertEqual(s, cube3x3.initial_state)
 def test_left_rev(self):
     s = cube3x3.initial_state
     s = cube3x3.transform(s, cube3x3.Action.l)
     r = cube3x3.render(s)
     self.assertEqual(r.back, ['O', 'O', 'W'] * 3)
     self.assertEqual(r.bottom, ['O', 'Y', 'Y'] * 3)
     self.assertEqual(r.front, ['Y', 'R', 'R'] * 3)
     self.assertEqual(r.left, ['G'] * 9)
     self.assertEqual(r.right, ['B'] * 9)
     self.assertEqual(r.top, ['R', 'W', 'W'] * 3)
 def test_init_render(self):
     state = cube3x3.initial_state
     render = cube3x3.render(state)
     self.assertIsInstance(render, cube3x3.RenderedState)
     self.assertEqual(render.top, ['W'] * 9)
     self.assertEqual(render.back, ['O'] * 9)
     self.assertEqual(render.bottom, ['Y'] * 9)
     self.assertEqual(render.front, ['R'] * 9)
     self.assertEqual(render.left, ['G'] * 9)
     self.assertEqual(render.right, ['B'] * 9)
 def test_top(self):
     s = cube3x3.initial_state
     s = cube3x3.transform(s, cube3x3.Action.T)
     r = cube3x3.render(s)
     self.assertEqual(r.top, ['W'] * 9)
     self.assertEqual(r.back, ['G'] * 3 + ['O'] * 6)
     self.assertEqual(r.bottom, ['Y'] * 9)
     self.assertEqual(r.front, ['B'] * 3 + ['R'] * 6)
     self.assertEqual(r.left, ['R'] * 3 + ['G'] * 6)
     self.assertEqual(r.right, ['O'] * 3 + ['B'] * 6)
コード例 #6
0
 def test_left_rev(self):
     s = cube3x3.initial_state
     s = cube3x3.transform(s, cube3x3.Action.l)
     r = cube3x3.render(s)
     self.assertEqual(r.back, ["O", "O", "W"] * 3)
     self.assertEqual(r.bottom, ["O", "Y", "Y"] * 3)
     self.assertEqual(r.front, ["Y", "R", "R"] * 3)
     self.assertEqual(r.left, ["G"] * 9)
     self.assertEqual(r.right, ["B"] * 9)
     self.assertEqual(r.top, ["R", "W", "W"] * 3)
コード例 #7
0
 def test_init_render(self):
     state = cube3x3.initial_state
     render = cube3x3.render(state)
     self.assertIsInstance(render, cube3x3.RenderedState)
     self.assertEqual(render.top, ["W"] * 9)
     self.assertEqual(render.back, ["O"] * 9)
     self.assertEqual(render.bottom, ["Y"] * 9)
     self.assertEqual(render.front, ["R"] * 9)
     self.assertEqual(render.left, ["G"] * 9)
     self.assertEqual(render.right, ["B"] * 9)
コード例 #8
0
 def test_top(self):
     s = cube3x3.initial_state
     s = cube3x3.transform(s, cube3x3.Action.T)
     r = cube3x3.render(s)
     self.assertEqual(r.top, ["W"] * 9)
     self.assertEqual(r.back, ["G"] * 3 + ["O"] * 6)
     self.assertEqual(r.bottom, ["Y"] * 9)
     self.assertEqual(r.front, ["B"] * 3 + ["R"] * 6)
     self.assertEqual(r.left, ["R"] * 3 + ["G"] * 6)
     self.assertEqual(r.right, ["O"] * 3 + ["B"] * 6)