Exemple #1
0
    def test_setMoves(self):
        nim = Nim(2)
        self.assertEqual(len(nim.moves), 3)
        self.assertTrue((None,-1,0) in nim.moves)
        self.assertTrue((None,1,-1) in nim.moves)
        self.assertTrue((None,0,-1) in nim.moves)

        nim = Nim(4, 0.3122, PlayCondition.Misere)
        self.assertEqual(nim.rulecode, "0.3122")
        self.assertEqual(len(nim.moves), 6)
        self.assertTrue((None,-1,0,0,0) in nim.moves)
        self.assertTrue((None,0,-1,0,0) in nim.moves)
        self.assertTrue((None,1,-1,0,0) in nim.moves)
        self.assertTrue((None,0,1,-1,0) in nim.moves)
        self.assertTrue((None,1,0,0,-1) in nim.moves)
        self.assertTrue((None,0,0,1,-1) in nim.moves)


        nim = Nim(6, 0.3122, PlayCondition.Misere)
        self.assertEqual(nim.rulecode, "0.312200")
        self.assertEqual(len(nim.moves), 12)
        self.assertTrue((None,-1,0,0,0,0,0) in nim.moves)
        self.assertTrue((None,1,-1,0,0,0,0) in nim.moves)
        self.assertTrue((None,0,1,-1,0,0,0) in nim.moves)
        self.assertTrue((None,0,0,1,-1,0,0) in nim.moves)
        self.assertTrue((None,0,0,0,1,-1,0) in nim.moves)
        self.assertTrue((None,0,0,0,0,1,-1) in nim.moves)
        self.assertTrue((None,0,-1,0,0,0,0) in nim.moves)
        self.assertTrue((None,1,0,0,-1,0,0) in nim.moves)
        self.assertTrue((None,0,1,0,0,-1,0) in nim.moves)
        self.assertTrue((None,0,0,1,0,0,-1) in nim.moves)
        self.assertTrue((None,1,0,0,0,-1,0) in nim.moves)
        self.assertTrue((None,0,1,0,0,0,-1) in nim.moves)
Exemple #2
0
 def test_zeroTupleAbove(self):
     nim = Nim()
     t = (None,1,2,3,4)
     self.assertEqual(nim.zeroTupleAbove(t,1), (None,1,0,0,0))
     self.assertEqual(nim.zeroTupleAbove(t,2), (None,1,2,0,0))
     self.assertEqual(nim.zeroTupleAbove(t,3), (None,1,2,3,0))
     self.assertEqual(nim.zeroTupleAbove(t,4), (None,1,2,3,4))
Exemple #3
0
 def test_zeroTupleBelow(self):
     nim = Nim()
     t = (None,1,2,3,4)
     self.assertEqual(nim.zeroTupleBelow(t,1), (None,1,2,3,4))
     self.assertEqual(nim.zeroTupleBelow(t,2), (None,0,2,3,4))
     self.assertEqual(nim.zeroTupleBelow(t,3), (None,0,0,3,4))
     self.assertEqual(nim.zeroTupleBelow(t,4), (None,0,0,0,4))
Exemple #4
0
 def test_example4(self):
     nim = Nim(4, 0.3122, PlayCondition.Misere)
     nim.run()
     self.assertEqual(len(nim.p_positions()), 8)
     self.assertTrue((None,1,0,0,0) in nim.p_positions())
     self.assertTrue((None,0,2,0,0) in nim.p_positions())
     self.assertTrue((None,0,0,1,0) in nim.p_positions())
     self.assertTrue((None,0,2,1,0) in nim.p_positions())
     self.assertTrue((None,1,0,0,1) in nim.p_positions())
     self.assertTrue((None,0,3,0,1) in nim.p_positions())
     self.assertTrue((None,0,1,1,1) in nim.p_positions())
     self.assertTrue((None,0,3,1,1) in nim.p_positions())
     self.assertEqual(nim.rectangle, (None,2,4,2,2))
     self.assertEqual(nim.preperiod, (None,0,2,1,0))
     self.assertEqual(nim.period(), (None,2,2,1,2))
Exemple #5
0
 def test_example3_5(self):
     nim = Nim(3, None, PlayCondition.Misere)
     nim.run()
     self.assertEqual(len(nim.p_positions()), 5)
     self.assertTrue((None,1,0,0) in nim.p_positions())
     self.assertTrue((None,0,2,0) in nim.p_positions())
     self.assertTrue((None,1,1,1) in nim.p_positions())
     self.assertTrue((None,0,0,2) in nim.p_positions())
     self.assertTrue((None,0,2,2) in nim.p_positions())
     self.assertEqual(nim.rectangle, (None,2,3,3))
     self.assertEqual(nim.preperiod, (None,0,1,1))
     self.assertEqual(nim.period(), (None,2,2,2))
Exemple #6
0
 def test_example2(self):
     nim = Nim(2)
     nim.run()
     self.assertEqual(len(nim.p_positions()), 1)
     self.assertEqual(nim.p_positions(), [(None,0,0)])
     self.assertEqual(nim.rectangle, (None,2,2))
     self.assertEqual(nim.preperiod, (None,0,0))
Exemple #7
0
 def test_incrementTupleWithCarry(self):
     nim = Nim(4)
     nim.rectangle = (None,2,2,2,2)
     t = nim.incrementTupleWithCarry(nim.origen)
     self.assertEqual(t, (None,1,0,0,0))
     self.assertEqual(nim.inc_dim, 1)
     t = nim.incrementTupleWithCarry((None,2,1,0,0))
     self.assertEqual(t, (None,0,2,0,0))
     self.assertEqual(nim.inc_dim, 2)
     t = nim.incrementTupleWithCarry((None,2,2,0,0))
     self.assertEqual(t, (None,0,0,1,0))
     self.assertEqual(nim.inc_dim, 3)
Exemple #8
0
 def test_example5(self):
     nim = Nim(6, 0.3122, PlayCondition.Misere)
     nim.run()
     self.assertEqual(nim.rectangle, (None,2,5,2,4,4,4))
     self.assertEqual(nim.preperiod, (None,0,3,1,2,2,2))