Ejemplo n.º 1
0
 def test_inverse(self):
     s = cube2x2.initial_state
     for a in cube2x2.Action:
         s = cube2x2.transform(s, a)
         r = cube2x2.render(s)
         s = cube2x2.transform(s, cube2x2.inverse_action(a))
         r2 = cube2x2.render(s)
     self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 2
0
    def test_inverse_back(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.B)
        s = cube2x2.transform(s, cube2x2.Action.b)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.b)
        s = cube2x2.transform(s, cube2x2.Action.B)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 3
0
    def test_inverse_down(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.D)
        s = cube2x2.transform(s, cube2x2.Action.d)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.d)
        s = cube2x2.transform(s, cube2x2.Action.D)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 4
0
    def test_inverse_front(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.F)
        s = cube2x2.transform(s, cube2x2.Action.f)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.f)
        s = cube2x2.transform(s, cube2x2.Action.F)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 5
0
    def test_inverse_top(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.T)
        s = cube2x2.transform(s, cube2x2.Action.t)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.t)
        s = cube2x2.transform(s, cube2x2.Action.T)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 6
0
    def test_inverse_left(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.L)
        s = cube2x2.transform(s, cube2x2.Action.l)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.l)
        s = cube2x2.transform(s, cube2x2.Action.L)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 7
0
    def test_inverse_right(self):
        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.R)
        s = cube2x2.transform(s, cube2x2.Action.r)
        self.assertEqual(s, cube2x2.initial_state)

        s = cube2x2.initial_state
        s = cube2x2.transform(s, cube2x2.Action.r)
        s = cube2x2.transform(s, cube2x2.Action.R)
        self.assertEqual(s, cube2x2.initial_state)
    def test_sequence(self):
        acts = [cube2x2.Action.R, cube2x2.Action.t, cube2x2.Action.R, cube2x2.Action.D, cube2x2.Action.F,
                cube2x2.Action.d, cube2x2.Action.T, cube2x2.Action.R, cube2x2.Action.D, cube2x2.Action.F]

        s = cube2x2.initial_state
        for a in acts:
            s = cube2x2.transform(s, a)
        r = cube2x2.render(s)
        for a in reversed(acts):
            s = cube2x2.transform(s, cube2x2.inverse_action(a))
        r = cube2x2.render(s)
        self.assertEqual(s, cube2x2.initial_state)
Ejemplo n.º 9
0
 def test_random(self):
     s = cube2x2.initial_state
     for _ in range(200):
         a = cube2x2.Action(random.randrange(len(cube2x2.Action)))
         s = cube2x2.transform(s, a)
         tgt = np.zeros(shape=cube2x2.encoded_shape)
         cube2x2.encode_inplace(tgt, s)
         self.assertEqual(tgt.sum(), 8)
Ejemplo n.º 10
0
 def test_left_rev(self):
     s = cube2x2.initial_state
     s = cube2x2.transform(s, cube2x2.Action.l)
     r = cube2x2.render(s)
     self.assertEqual(r.back, ["O", "W"] * 2)
     self.assertEqual(r.bottom, ["O", "Y"] * 2)
     self.assertEqual(r.front, ["Y", "R"] * 2)
     self.assertEqual(r.left, ["G"] * 4)
     self.assertEqual(r.right, ["B"] * 4)
     self.assertEqual(r.top, ["R", "W"] * 2)
 def test_left_rev(self):
     s = cube2x2.initial_state
     s = cube2x2.transform(s, cube2x2.Action.l)
     r = cube2x2.render(s)
     self.assertEqual(r.back, ['O', 'W'] * 2)
     self.assertEqual(r.bottom, ['O', 'Y'] * 2)
     self.assertEqual(r.front, ['Y', 'R'] * 2)
     self.assertEqual(r.left, ['G'] * 4)
     self.assertEqual(r.right, ['B'] * 4)
     self.assertEqual(r.top, ['R', 'W'] * 2)