Skip to content

Instantly share code, notes, and snippets.

@JamesJinPark
Last active August 29, 2015 14:06
Show Gist options
  • Save JamesJinPark/39586b3f0e8218db6786 to your computer and use it in GitHub Desktop.
Save JamesJinPark/39586b3f0e8218db6786 to your computer and use it in GitHub Desktop.
Three_Musketeers_Test
import unittest
from three_musketeers import *
left = 'left'
right = 'right'
up = 'up'
down = 'down'
M = 'M'
R = 'R'
_ = '-'
class TestThreeMusketeers(unittest.TestCase):
def setUp(self):
set_board([ [_, _, _, M, _],
[_, _, R, M, _],
[_, R, M, R, _],
[_, R, _, _, _],
[_, _, _, R, _] ])
def test_create_board(self):
create_board()
self.assertEqual(at((0, 0)), 'R')
self.assertEqual(at((0, 4)), 'M')
def test_set_board(self):
self.assertEqual(at((0, 0)), '-')
self.assertEqual(at((1, 2)), 'R')
self.assertEqual(at((1, 3)), 'M')
def test_get_board(self):
self.assertEqual([ [_, _, _, M, _],
[_, _, R, M, _],
[_, R, M, R, _],
[_, R, _, _, _],
[_, _, _, R, _] ],
get_board())
def test_string_to_location(self):
self.assertEqual ((0, 4), string_to_location('A5'))
self.assertEqual ((2, 2), string_to_location('C3'))
self.assertEqual ((0, 0), string_to_location('A1'))
self.assertNotEqual ((1, 1), string_to_location('E3'))
def test_location_to_string(self):
self.assertEqual ('A5', location_to_string((0, 4)))
self.assertEqual ('C3', location_to_string((2, 2)))
self.assertEqual ('A1', location_to_string((0, 0)))
def test_at(self):
self.assertEqual ('M', at((0, 3)))
def test_all_locations(self):
self.assertEqual([(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)], all_locations())
self.assertNotEqual([(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3)], all_locations())
def test_adjacent_location(self):
self.assertEqual((1, 4), adjacent_location((1, 3),'right'))
self.assertEqual((1, 2), adjacent_location((1, 3),'left'))
self.assertEqual((0, 3), adjacent_location((1, 3),'up'))
self.assertEqual((2, 3), adjacent_location((1, 3),'down'))
self.assertNotEqual((1, 4), adjacent_location((1, 4),'right'))
self.assertEqual((3, 3), adjacent_location((2, 3),'down'))
def test_is_legal_move_by_musketeer(self):
set_board([ [_, _, R, M, _],
[_, R, _, M, _],
[_, _, M, R, R],
[_, R, _, _, _],
[_, _, _, R, _] ] )
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'right'))
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'up'))
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'down'))
self.assertTrue(is_legal_move_by_musketeer((0 ,3), 'left'))
def test_is_legal_move_by_enemy(self):
set_board([ [_, _, R, M, _],
[_, R, _, M, _],
[_, _, M, R, R],
[_, R, _, _, _],
[_, _, _, R, _] ] )
self.assertFalse(is_legal_move_by_enemy((0, 2), 'right'))
self.assertFalse(is_legal_move_by_enemy((0, 2), 'up'))
self.assertTrue(is_legal_move_by_enemy((0, 2), 'down'))
self.assertTrue(is_legal_move_by_enemy((0 ,2), 'left'))
self.assertTrue(is_legal_move_by_enemy((1 ,1), 'left'))
self.assertFalse(is_legal_move_by_enemy((2 ,3), 'right'))
self.assertFalse(is_legal_move_by_enemy((2 ,3), 'left'))
self.assertTrue(is_legal_move_by_enemy((2 ,3), 'down'))
def test_is_legal_move(self):
set_board([ [_, _, R, M, _],
[_, R, _, M, _],
[_, _, M, R, R],
[_, R, _, _, _],
[_, _, _, R, _] ] )
#test_is_legal_move_by_musketeer(self)
#test_is_legal_move_by_enemy(self) why don't these work?
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'right'))
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'up'))
self.assertFalse(is_legal_move_by_musketeer((0, 3), 'down'))
self.assertTrue(is_legal_move_by_musketeer((0 ,3), 'left'))
self.assertFalse(is_legal_move_by_enemy((0, 2), 'right'))
self.assertFalse(is_legal_move_by_enemy((0, 2), 'up'))
self.assertTrue(is_legal_move_by_enemy((0, 2), 'down'))
self.assertTrue(is_legal_move_by_enemy((0 ,2), 'left'))
self.assertTrue(is_legal_move_by_enemy((1 ,1), 'left'))
self.assertFalse(is_legal_move_by_enemy((2 ,3), 'right'))
self.assertFalse(is_legal_move_by_enemy((2 ,3), 'left'))
self.assertTrue(is_legal_move_by_enemy((2 ,3), 'down'))
def test_has_some_legal_move_somewhere(self):
set_board([ [_, _, _, M, _],
[_, R, _, M, _],
[_, _, M, _, R],
[_, R, _, _, _],
[_, _, _, R, _] ] )
self.assertFalse(has_some_legal_move_somewhere('M'))
self.assertTrue(has_some_legal_move_somewhere('R'))
def test_possible_moves_from(self):
set_board([ [_, _, _, M, _],
[_, R, _, M, _],
[_, R, M, _, R],
[_, R, _, R, _],
[_, _, R, R, R] ] )
self.assertEqual(['left'], possible_moves_from((2, 2)))
self.assertEqual(['left', 'right', 'down'], possible_moves_from((3, 1)))
def test_can_move_piece_at(self):
set_board([ [_, _, _, M, _],
[_, R, _, M, _],
[_, _, M, _, R],
[_, R, _, R, _],
[_, _, R, R, R] ] )
self.assertFalse(can_move_piece_at((2, 2)))
self.assertFalse(can_move_piece_at((0, 3)))
self.assertFalse(can_move_piece_at((1, 3)))
self.assertFalse(can_move_piece_at((4, 3)))
self.assertTrue(can_move_piece_at((1, 1)))
def test_is_legal_location(self):
self.assertFalse(is_legal_location((-1, 2)))
self.assertFalse(is_legal_location((0, -2)))
self.assertFalse(is_legal_location((0, 5)))
self.assertFalse(is_legal_location((5, 4)))
def test_is_within_board(self):
self.assertFalse(is_within_board((0, 0), 'left'))
self.assertFalse(is_within_board((4, 0), 'left'))
self.assertFalse(is_within_board((0, 4), 'right'))
self.assertFalse(is_within_board((4, 4), 'right'))
self.assertFalse(is_within_board((0, 2), 'up'))
self.assertFalse(is_within_board((4, 3), 'down'))
self.assertTrue(is_within_board((1, 3), 'down') )
def test_all_possible_moves_for(self):
set_board([ [_, _, R, M, R],
[_, _, _, M, M],
[_, _, _, _, _],
[_, _, _, _, _],
[_, _, _, _, _] ] )
self.assertEqual((((0, 3), 'left'), ((0, 3), 'right')), ((1, 4), 'up')), all_possible_moves_for('M')
self.assertEqual((((0, 2), 'left'), ((0, 2), 'down')), all_possible_moves_for('R'))
def test_make_move(self):
set_board([ [_, _, _, M, _],
[_, R, R, M, _],
[_, _, M, _, R],
[_, R, _, R, _],
[_, _, R, R, R] ] )
self.assertEqual('M', make_move((1, 3), 'left'))
self.assertEqual('R', make_move((3, 1), 'down'))
def test_choose_computer_move(self):
self.assertEqual( , choose_computer_move('M'))
self.assertEqual( , choose_computer_move('R'))
def test_is_enemy_win(self):
set_board([ [_, _, _, M, _],
[_, R, R, M, _],
[_, _, M, _, R],
[_, R, _, R, _],
[_, _, R, R, R] ] )
self.assertFalse( , is_enemy_win())
self.assertFalse( , is_enemy_win())
self.assertFalse( , is_enemy_win())
self.assertFalse( , is_enemy_win())
self.assertTrue( , is_enemy_win())
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment