def test_get_pieces(self): g = Game(rows=1) g.drop_cross(0) g.drop_round(1) self.assertTrue((0,0) in g._get_pieces('X')) self.assertFalse((1,0) in g._get_pieces('X')) self.assertTrue((1,0) in g._get_pieces('O')) self.assertFalse((0,0) in g._get_pieces('O'))
def test_horizontal_win_by_round(self): # Horizontal win using round g = Game() [g.drop_round(i) for i in range(4)] self.assertTrue(g._horizontal_win('O')) self.assertFalse(g._horizontal_win('X'))
def test_vertical_win_by_round(self): # Vertical win using round g = Game() [g.drop_round(0) for i in range(4)] self.assertTrue(g._vertical_win('O')) self.assertFalse(g._vertical_win('X'))
def test_drop_round_on_full_column_raises(self): g = Game(rows=2) self.assertEquals(g.drop_round(0), (0,1)) self.assertEquals(g.drop_round(0), (0,0)) self.assertRaises(ColumnFullException, g.drop_round, 0)
def test_drop_round(self): g = Game() self.assertEquals(g.drop_round(0), (0,5)) self.assertTrue((0,5) in g._round_pieces)
def test_diagonal_win_by_cross(self): """ Diagonal win using this structure X X O X O O X O O O """ g = Game() g.drop_cross(0) g.drop_round(1) g.drop_cross(1) g.drop_round(2) g.drop_round(2) g.drop_cross(2) g.drop_round(3) g.drop_round(3) g.drop_round(3) g.drop_cross(3) self.assertTrue(g._diagonal_win('X')) """ Diagonal win using this structure X O X O O X O O O X """ g = Game() g.drop_cross(3) g.drop_round(2) g.drop_cross(2) g.drop_round(1) g.drop_round(1) g.drop_cross(1) g.drop_round(0) g.drop_round(0) g.drop_round(0) g.drop_cross(0) self.assertTrue(g._diagonal_win('X')) self.assertFalse(g._diagonal_win('O')) # No victory, insufficient total pieces g = Game() [g.drop_cross(i) for i in range(3)] self.assertFalse(g._diagonal_win('X'))