class BoardTest(unittest.TestCase): def setUp(self): self.b = Board() def test_row_win(self): self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 0, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 2, 'x')) self.assertFalse(self.b.finished()) self.assertFalse(self.b.move(0, 'as', 'x')) self.assertFalse(self.b.move(0, 4, 'x')) self.assertFalse(self.b.move(4, 0, 'o')) self.assertFalse(self.b.move(0, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 1, 'x')) self.assertEqual(self.b.finished(), 1) def test_col_win(self): self.assertTrue(self.b.move(0, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 1, 'o')) self.assertEqual(self.b.finished(), 1) def test_first_diag_win(self): self.assertTrue(self.b.move(0, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 2, 'o')) self.assertEqual(self.b.finished(), 1) def test_second_diag_win(self): self.assertTrue(self.b.move(0, 2, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 0, 'o')) self.assertEqual(self.b.finished(), 1) def test_draw(self): self.assertTrue(self.b.move(0, 0, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 2, 'x')) self.assertTrue(self.b.move(1, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 1, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 2, 'o')) self.assertTrue(self.b.move(2, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 1, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 2, 'o')) self.assertEqual(self.b.finished(), 2) def test_all_filled_and_win(self): self.assertTrue(self.b.move(0, 0, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(0, 2, 'x')) self.assertTrue(self.b.move(1, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 1, 'x')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(1, 2, 'o')) self.assertTrue(self.b.move(2, 0, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 1, 'o')) self.assertFalse(self.b.finished()) self.assertTrue(self.b.move(2, 2, 'o')) self.assertEqual(self.b.finished(), 1)