class test_check_win_loss_tie(unittest.TestCase):
    """Check that the print board function returns a board"""

    def setUp(self):
        self.controller = Connect_Four_Controller()
        print("Running: ", str(self._testMethodName) + "\n   " +
              str(self.shortDescription()) + "\n")

    def tearDown(self):
        del self.controller


    def test_check_no_win(self):
        """Test if check status does not declare a winner if no one wins"""

        #create good columns that do not have a winner
        no_win_col_1 = [ 1 , 1,-1,-1]
        no_win_col_2 = [-1, -1, 1,-1]
        no_win_col_3 = [ 1,  1,-1, 1]
        no_win_col_4 = [ 1,  1,-1, 1]
        no_win_col_5 = [-1, -1, 1,-1]
        no_win_col_6 = [ 1,  1,-1,-1]
        no_win_col_7 = [-1, -1, 1,-1]

        #create a no_win board using no_win columns with no winner
        no_win_board = [no_win_col_1, no_win_col_2, no_win_col_3, no_win_col_4,
                      no_win_col_5, no_win_col_6, no_win_col_7]

        #check the no_win board for no win
        #key for no_win == 0

        self.assertEqual(self.controller.check_game_status(no_win_board), 0)

    def test_check_tie_game(self):
        """Test if check status does not declare a winner if the game is tied"""

        #create tie game columns that do not have a winner
        tie_col_1 = [1,  -1,  -1,  1,  1, -1]
        tie_col_2 = [1,   1,  -1, -1,  1,  1]
        tie_col_3 = [-1, -1,  -1,  1,  1,  1]
        tie_col_4 = [-1,  1,   1,  1, -1, -1]
        tie_col_5 = [1,  -1,  -1, -1,  1, -1]
        tie_col_6 = [1,   1,  -1, -1,  1, -1]
        tie_col_7 = [-1,  1,   1,  1, -1,  1]

        #create a tie board using tie columns with no winner
        tie_board = [tie_col_1, tie_col_2, tie_col_3, tie_col_4,
                      tie_col_5, tie_col_6, tie_col_7]
        
        #check the status of the tie board for a tie
        #key for tie == 1

        self.assertEqual(self.controller.check_game_status(tie_board), 1)
        
    def test_check_horizontal_win(self):
        """Test if check status declares winner for horizontal win"""

        #create horizontal win game columns that have a winner
        horiz_win_col_1 = [1]
        horiz_win_col_2 = [1]
        horiz_win_col_3 = [1]
        horiz_win_col_4 = [1]
        horiz_win_col_5 = []
        horiz_win_col_6 = []
        horiz_win_col_7 = []

        #create a horizontal win board using horiz_win columns
        horiz_win_board = [horiz_win_col_1, horiz_win_col_2, horiz_win_col_3,
                     horiz_win_col_4, horiz_win_col_5, horiz_win_col_6, 
                     horiz_win_col_7]
        
        #check the status of the horizontal win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(horiz_win_board), 42)


    def test_check_vertical_win(self):
        """Test if check status declares winner for vertical win"""

        #create vertical win game columns
        vert_win_col_1 = [1, 1, 1, 1]
        vert_win_col_2 = []
        vert_win_col_3 = []
        vert_win_col_4 = []
        vert_win_col_5 = []
        vert_win_col_6 = []
        vert_win_col_7 = []

        #create a vertical win board using vert_win columns
        vert_win_board = [vert_win_col_1, vert_win_col_2, vert_win_col_3,
                     vert_win_col_4, vert_win_col_5, vert_win_col_6, 
                     vert_win_col_7]
        
        #check the status of the vertical win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(vert_win_board), 42)
        
    def test_check_up_diagonal_win(self):
        """Test if check status declares winner for vertical win"""

        #create diagonal win game columns
        upward_diagonal_win_col_1 = [1]
        upward_diagonal_win_col_2 = [-1,1]
        upward_diagonal_win_col_3 = [1,-1,1]
        upward_diagonal_win_col_4 = [-1,1,-1,1]
        upward_diagonal_win_col_5 = []
        upward_diagonal_win_col_6 = []
        upward_diagonal_win_col_7 = []

        #create a upward diagonal win board using 
        # upward_diagonal_win columns
        upward_diagonal_win_board = \
            [upward_diagonal_win_col_1, upward_diagonal_win_col_2, 
                     upward_diagonal_win_col_3, upward_diagonal_win_col_4, 
                     upward_diagonal_win_col_5, upward_diagonal_win_col_6, 
                     upward_diagonal_win_col_7]
        
        #check the status of the upward diagonal win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(upward_diagonal_win_board), 42)

    def test_check_down_diagonal_win(self):
        """Test if check status declares winner for vertical win"""

        #create diagonal win game columns
        downward_diagonal_win_col_1 = [-1,1,-1, 1]
        downward_diagonal_win_col_2 = [1,-1,1]
        downward_diagonal_win_col_3 = [-1,1]
        downward_diagonal_win_col_4 = [1]
        downward_diagonal_win_col_5 = []
        downward_diagonal_win_col_6 = []
        downward_diagonal_win_col_7 = []

        #create a downward diagonal win board using 
        # downward_diagonal_win columns
        downward_diagonal_win_board = \
            [downward_diagonal_win_col_1, downward_diagonal_win_col_2, 
                     downward_diagonal_win_col_3, downward_diagonal_win_col_4, 
                     downward_diagonal_win_col_5, downward_diagonal_win_col_6, 
                     downward_diagonal_win_col_7]
        
        #check the status of the downward diagonal win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(downward_diagonal_win_board), 42)
Exemple #2
0
class test_check_win_loss_tie(unittest.TestCase):
    """Check that the print board function returns a board"""
    def setUp(self):
        self.controller = Connect_Four_Controller()
        print(
            "Running: ",
            str(self._testMethodName) + "\n   " +
            str(self.shortDescription()) + "\n")

    def tearDown(self):
        del self.controller

    def test_check_no_win(self):
        """Test if check status does not declare a winner if no one wins"""

        #create good columns that do not have a winner
        no_win_col_1 = [1, 1, -1, -1]
        no_win_col_2 = [-1, -1, 1, -1]
        no_win_col_3 = [1, 1, -1, 1]
        no_win_col_4 = [1, 1, -1, 1]
        no_win_col_5 = [-1, -1, 1, -1]
        no_win_col_6 = [1, 1, -1, -1]
        no_win_col_7 = [-1, -1, 1, -1]

        #create a no_win board using no_win columns with no winner
        no_win_board = [
            no_win_col_1, no_win_col_2, no_win_col_3, no_win_col_4,
            no_win_col_5, no_win_col_6, no_win_col_7
        ]

        #check the no_win board for no win
        #key for no_win == 0

        self.assertEqual(self.controller.check_game_status(no_win_board), 0)

    def test_check_tie_game(self):
        """Test if check status does not declare a winner if the game is tied"""

        #create tie game columns that do not have a winner
        tie_col_1 = [1, -1, -1, 1, 1, -1]
        tie_col_2 = [1, 1, -1, -1, 1, 1]
        tie_col_3 = [-1, -1, -1, 1, 1, 1]
        tie_col_4 = [-1, 1, 1, 1, -1, -1]
        tie_col_5 = [1, -1, -1, -1, 1, -1]
        tie_col_6 = [1, 1, -1, -1, 1, -1]
        tie_col_7 = [-1, 1, 1, 1, -1, 1]

        #create a tie board using tie columns with no winner
        tie_board = [
            tie_col_1, tie_col_2, tie_col_3, tie_col_4, tie_col_5, tie_col_6,
            tie_col_7
        ]

        #check the status of the tie board for a tie
        #key for tie == 1

        self.assertEqual(self.controller.check_game_status(tie_board), 1)

    def test_check_horizontal_win(self):
        """Test if check status declares winner for horizontal win"""

        #create horizontal win game columns that have a winner
        horiz_win_col_1 = [1]
        horiz_win_col_2 = [1]
        horiz_win_col_3 = [1]
        horiz_win_col_4 = [1]
        horiz_win_col_5 = []
        horiz_win_col_6 = []
        horiz_win_col_7 = []

        #create a horizontal win board using horiz_win columns
        horiz_win_board = [
            horiz_win_col_1, horiz_win_col_2, horiz_win_col_3, horiz_win_col_4,
            horiz_win_col_5, horiz_win_col_6, horiz_win_col_7
        ]

        #check the status of the horizontal win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(horiz_win_board),
                         42)

    def test_check_vertical_win(self):
        """Test if check status declares winner for vertical win"""

        #create vertical win game columns
        vert_win_col_1 = [1, 1, 1, 1]
        vert_win_col_2 = []
        vert_win_col_3 = []
        vert_win_col_4 = []
        vert_win_col_5 = []
        vert_win_col_6 = []
        vert_win_col_7 = []

        #create a vertical win board using vert_win columns
        vert_win_board = [
            vert_win_col_1, vert_win_col_2, vert_win_col_3, vert_win_col_4,
            vert_win_col_5, vert_win_col_6, vert_win_col_7
        ]

        #check the status of the vertical win board for a win
        #key for win == 42

        self.assertEqual(self.controller.check_game_status(vert_win_board), 42)

    def test_check_up_diagonal_win(self):
        """Test if check status declares winner for vertical win"""

        #create diagonal win game columns
        upward_diagonal_win_col_1 = [1]
        upward_diagonal_win_col_2 = [-1, 1]
        upward_diagonal_win_col_3 = [1, -1, 1]
        upward_diagonal_win_col_4 = [-1, 1, -1, 1]
        upward_diagonal_win_col_5 = []
        upward_diagonal_win_col_6 = []
        upward_diagonal_win_col_7 = []

        #create a upward diagonal win board using
        # upward_diagonal_win columns
        upward_diagonal_win_board = \
            [upward_diagonal_win_col_1, upward_diagonal_win_col_2,
                     upward_diagonal_win_col_3, upward_diagonal_win_col_4,
                     upward_diagonal_win_col_5, upward_diagonal_win_col_6,
                     upward_diagonal_win_col_7]

        #check the status of the upward diagonal win board for a win
        #key for win == 42

        self.assertEqual(
            self.controller.check_game_status(upward_diagonal_win_board), 42)

    def test_check_down_diagonal_win(self):
        """Test if check status declares winner for vertical win"""

        #create diagonal win game columns
        downward_diagonal_win_col_1 = [-1, 1, -1, 1]
        downward_diagonal_win_col_2 = [1, -1, 1]
        downward_diagonal_win_col_3 = [-1, 1]
        downward_diagonal_win_col_4 = [1]
        downward_diagonal_win_col_5 = []
        downward_diagonal_win_col_6 = []
        downward_diagonal_win_col_7 = []

        #create a downward diagonal win board using
        # downward_diagonal_win columns
        downward_diagonal_win_board = \
            [downward_diagonal_win_col_1, downward_diagonal_win_col_2,
                     downward_diagonal_win_col_3, downward_diagonal_win_col_4,
                     downward_diagonal_win_col_5, downward_diagonal_win_col_6,
                     downward_diagonal_win_col_7]

        #check the status of the downward diagonal win board for a win
        #key for win == 42

        self.assertEqual(
            self.controller.check_game_status(downward_diagonal_win_board), 42)