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_total_minimum_pieces(self): g = Game() [g.drop_cross(0) for i in range(3)] self.assertFalse(g._minimum_pieces(g._pieces)) g = Game() [g.drop_cross(0) for i in range(4)] self.assertTrue(g._minimum_pieces(g._pieces))
def test_horizontal_win_by_cross(self): # No victory, insufficient total pieces g = Game() [g.drop_cross(i) for i in range(3)] self.assertFalse(g._horizontal_win('X')) # No victory insufficient row total pieces g = Game() [g.drop_cross(i) for i in range(3)] g.drop_cross(0) self.assertFalse(g._horizontal_win('X')) # Horizontal win using crosses g = Game() [g.drop_cross(i) for i in range(4)] self.assertTrue(g._horizontal_win('X'))
def test_vertical_win_by_cross(self): # No victory, insufficient total pieces g = Game() [g.drop_cross(0) for i in range(3)] self.assertFalse(g._vertical_win('X')) # No victory, insufficient column total pieces g = Game() [g.drop_cross(0) for i in range(3)] g.drop_cross(1) self.assertFalse(g._vertical_win('X')) # Vertical win using crosses g = Game() [g.drop_cross(0) for i in range(4)] self.assertTrue(g._vertical_win('X'))
def test_drop_cross_on_full_column_raises(self): g = Game(rows=2) self.assertEquals(g.drop_cross(0), (0,1)) self.assertEquals(g.drop_cross(0), (0,0)) self.assertRaises(ColumnFullException, g.drop_cross, 0)
def test_drop_cross(self): g = Game() self.assertEquals(g.drop_cross(0), (0,5)) self.assertTrue((0,5) in g._cross_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'))