def test_check_for_group(self): self.testgame = gologic.game(19) self.testgame.groups.append(gologic.group((5,5),0)) self.testmove = gologic.move((4,5),0) self.testgame.check_for_group(self.testmove) assert len(self.testmove.adjacent_groups) == 1,"There should be one adjacent group to this move" self.testgame.groups.append(gologic.group((3,5),1)) self.testgame.check_for_group(self.testmove) assert len(self.testmove.adjacent_op_groups) == 1,"There should be one adjacent opponent group to this move"
def test_check_for_group_2(self): self.testgame = gologic.game(19) self.testgame.groups.append(gologic.group((5,5),0)) self.testgame.groups.append(gologic.group((3,5),0)) self.testgame.groups.append(gologic.group((4,6),0)) self.testgame.groups.append(gologic.group((4,4),0)) self.testmove = gologic.move((4,5),0) self.testgame.check_for_group(self.testmove) assert len(self.testmove.adjacent_groups) == 4,"There should be 4 adjacent groups to this move"
def test_merge_group(self): self.testgame = gologic.game(30) self.testgame.groups.append(gologic.group((5,5),0)) self.testgame.groups[0].add_position((4,4)) self.testgame.groups[0].add_position((5,4)) self.testgame.groups.append(gologic.group((3,4),0)) self.testgame.groups[1].add_position((3,5)) self.testgame.groups.append(gologic.group((4,6),0)) self.testmergelist = [self.testgame.groups[0],self.testgame.groups[1],self.testgame.groups[2]] self.testgame.merge_groups(self.testmergelist) assert len(self.testgame.groups) == 1,"Should only be one group after this merge"
def test_check_for_group_4(self): self.testgame = gologic.game(19) self.testgame.groups.append(gologic.group((5,5),0)) self.testgame.groups[0].add_position((4,4)) self.testgame.groups[0].add_position((5,4)) self.testgame.groups.append(gologic.group((3,4),0)) self.testgame.groups[1].add_position((3,5)) self.testgame.groups.append(gologic.group((4,6),0)) self.testmove = gologic.move((4,5),0) self.testgame.check_for_group(self.testmove) assert len(self.testmove.adjacent_groups) == 3,"There should be 3 adjacent groups to this move"
def test_make_a_move2(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((4,5),1,15) self.testgame.groups.append(gologic.group((4,5),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((6,5),1,15) self.testgame.groups.append(gologic.group((6,5),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,6),1,15) self.testgame.groups.append(gologic.group((5,6),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,4),1,15) self.testgame.groups.append(gologic.group((5,4),1,self.testgame.gameboard.grid)) self.testmove = gologic.move((5,5),0) legality = self.testgame.make_a_move(self.testmove) assert legality == False,"this move should be illegal"
def test_sim_move2(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((4,5),0,15) self.testgame.groups.append(gologic.group((4,5),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((6,5),0,15) self.testgame.groups.append(gologic.group((6,5),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,6),0,15) self.testgame.groups.append(gologic.group((5,6),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,4),0,15) self.testgame.groups.append(gologic.group((5,4),0,self.testgame.gameboard.grid)) self.testmove = gologic.move((5,5),0) sim_game = self.testgame.sim_move(self.testmove) assert len(sim_game.groups) == 1,"There should be 1 group" assert len(sim_game.groups[0].positions) == 5,"There should be 5 positions in the group"
def test_am_i_alive(self): self.testboard = gologic.board(13) self.testgroup = gologic.group((3,3),0) assert self.testgroup.am_i_alive(self.testboard.grid) == True, "group should have more than 0 liberties" self.testgroup2 = gologic.group((0,0),0) self.testboard.grid[(1,0)] = gologic.stone(1,2) self.testboard.grid[(0,1)] = gologic.stone(1,3) assert self.testgroup2.am_i_alive(self.testboard.grid) == False, "group should have 0 liberties" self.testgroup3 = gologic.group((10,10),0) self.testboard.grid[(11,10)] = gologic.stone(1,2) self.testboard.grid[(9,10)] = gologic.stone(1,3) self.testboard.grid[(10,11)] = gologic.stone(1,4) self.testboard.grid[(10,9)] = gologic.stone(1,5) assert self.testgroup3.am_i_alive(self.testboard.grid) == False, "group should have 0 liberties"
def test_am_i_alive2(self): self.testgame = gologic.game(9) self.testgame.gameboard.add_stone((5,5),0,1) self.testgame.groups.append(gologic.group((5,5),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((4,4),0,1) self.testgame.groups[0].add_position((4,4),self.testgame.gameboard.grid) assert self.testgame.groups[0].am_i_alive(self.testgame.gameboard.grid) == True, "group should have more than 0 liberties"
def test_merge_group(self): self.testgame = gologic.game(30) self.testgame.gameboard.add_stone((5,5),0,1) self.testgame.groups.append(gologic.group((5,5),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((4,4),0,1) self.testgame.groups[0].add_position((4,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((5,4),0,1) self.testgame.groups[0].add_position((5,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((3,4),0,1) self.testgame.groups.append(gologic.group((3,4),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((3,5),0,1) self.testgame.groups[1].add_position((3,5),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((4,6),0,1) self.testgame.groups.append(gologic.group((4,6),0,self.testgame.gameboard.grid)) self.testmergelist = [self.testgame.groups[0],self.testgame.groups[1],self.testgame.groups[2]] self.testgame.merge_groups(self.testmergelist) assert len(self.testgame.groups) == 1,"Should only be one group after this merge" assert len(self.testgame.groups[0].positions) == 6 ,"Group should have 6 positions" assert self.testgame.gameboard.grid[(4,6)].my_group == self.testgame.groups[0],"Stones my_group var should have been set to remaining group"
def test_am_i_alive3(self): self.testgame = gologic.game(9) self.testgame.groups.append(gologic.group((4,5),0)) self.testgame.groups[0].add_position((4,4)) self.testgame.gameboard.add_stone((4,4),0,15) self.testgame.gameboard.add_stone((4,5),0,16) self.testgame.gameboard.add_stone((4,3),1,17) self.testgame.gameboard.add_stone((4,6),1,18) self.testgame.gameboard.add_stone((3,4),1,19) self.testgame.gameboard.add_stone((3,5),1,20) self.testgame.gameboard.add_stone((5,4),1,21) self.testgame.gameboard.add_stone((5,5),1,22) assert self.testgame.groups[0].am_i_alive(self.testgame.gameboard.grid) == False, "group should have 0 liberties"
def test_kill_group(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((5,5),1,15) self.testgame.gameboard.add_stone((4,4),1,15) self.testgame.gameboard.add_stone((5,4),1,15) self.testgame.groups.append(gologic.group((5,5),1)) self.testgame.groups[0].add_position((4,4)) self.testgame.groups[0].add_position((5,4)) assert len(self.testgame.groups) == 1,"There should be 1 group" print self.testgame.dead_stones[0] self.testgame.kill_group(self.testgame.groups[0]) assert len(self.testgame.groups) == 0,"There should be 0 groups after killing group" for position, value in self.testgame.gameboard.grid.items(): assert value == None,"Board should be empty"
def test_make_a_move4(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((3,4),0,10) self.testgame.groups.append(gologic.group((3,4),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((3,5),0,10) self.testgame.groups[0].add_position((3,5),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((2,3),1,10) self.testgame.groups.append(gologic.group((2,3),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((2,4),1,10) self.testgame.groups[1].add_position((2,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((2,5),1,10) self.testgame.groups[1].add_position((2,5),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((4,4),1,10) self.testgame.groups.append(gologic.group((4,4),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((4,5),1,10) self.testgame.groups[1].add_position((4,5),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((3,6),1,10) self.testgame.groups.append(gologic.group((3,6),1,self.testgame.gameboard.grid)) self.testmove = gologic.move((3,3),1) legality = self.testgame.make_a_move(self.testmove) assert legality != False,"this move should be legal" assert len(legality.groups) == 3,"should be 3 groups after this move has been made" assert legality.dead_stones[0] == 2,"2 black stones should have died"
def test_check_for_group_3(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((5,5),0,1) self.testgame.groups.append(gologic.group((5,5),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((4,4),0,1) self.testgame.groups[0].add_position((4,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((5,4),0,1) self.testgame.groups[0].add_position((5,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((3,4),0,1) self.testgame.groups[0].add_position((3,4),self.testgame.gameboard.grid) self.testgame.gameboard.add_stone((3,5),0,1) self.testgame.groups[0].add_position((3,5),self.testgame.gameboard.grid) self.testmove = gologic.move((4,5),0) self.testgame.check_for_group(self.testmove) assert len(self.testmove.adjacent_groups) == 1,"There should be one adjacent group to this move"
def test_make_a_move3(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((4,5),1,15) self.testgame.groups.append(gologic.group((4,5),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((6,5),1,15) self.testgame.groups.append(gologic.group((6,5),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,6),1,15) self.testgame.groups.append(gologic.group((5,6),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,4),1,15) self.testgame.groups.append(gologic.group((5,4),1,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((4,4),0,15) self.testgame.groups.append(gologic.group((4,4),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((5,3),0,15) self.testgame.groups.append(gologic.group((5,3),0,self.testgame.gameboard.grid)) self.testgame.gameboard.add_stone((6,4),0,15) self.testgame.groups.append(gologic.group((6,4),0,self.testgame.gameboard.grid)) self.testmove = gologic.move((5,5),0) legality = self.testgame.make_a_move(self.testmove) assert legality != False,"this move should be legal" assert len(self.testgame.groups) == 7,"should be 7 groups after this move has been made" assert legality.dead_stones[1] == 1,"One white stone should have died"
def test_new_group(self): self.testgroup = gologic.group((3,5),0) assert self.testgroup.positions[0][0] == 3 , "x position should be 3" assert self.testgroup.positions[0][1] == 5 , "y position should be 5"
def test_new_group(self): self.testgame = gologic.game(19) self.testgame.gameboard.add_stone((3,5),1,15) self.testgroup = gologic.group((3,5),0,self.testgame.gameboard.grid) assert self.testgroup.positions[0][0] == 3 , "x position should be 3" assert self.testgroup.positions[0][1] == 5 , "y position should be 5"