def test_overlap_fail3(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 2, [(1, 2), (2, 2)])
        ship2 = fy.Ship("Ship2", 3, [(4, 2), (3, 2), (2, 2)])

        player.add_ship(ship)
        self.assertTrue(fy.overlap(ship2, player))
    def test_overlap_pass(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 2, [(1, 2), (2, 2)])
        ship2 = fy.Ship("Ship2", 3, [(5, 2), (6, 2), (7, 2)])

        player.add_ship(ship)
        self.assertFalse(fy.overlap(ship2, player))
    def test_kill_ship_get_score(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])
        ship2 = fy.Ship("Ship2", 1, [])
        ship3 = fy.Ship("Ship3", 1, [])

        player.add_ship(ship)
        player.add_ship(ship2)
        player.add_ship(ship3)

        player.kill_ship(ship2)

        self.assertEqual(player.get_score(), (2, 1))
    def test_kill_ship2(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])
        ship2 = fy.Ship("Ship2", 1, [])
        ship3 = fy.Ship("Ship3", 1, [])

        player.add_ship(ship)
        player.add_ship(ship2)
        player.add_ship(ship3)

        player.kill_ship(ship2)

        self.assertListEqual(player.ships, [ship, ship3])
    def test_reset2(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])
        ship2 = fy.Ship("Ship2", 1, [])
        ship3 = fy.Ship("Ship3", 1, [])

        player.add_ship(ship)
        player.add_ship(ship2)
        player.add_ship(ship3)

        player.kill_ship(ship2)

        player.reset()
        self.assertEqual(player.ships, [])
    def test_reset1(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])
        ship2 = fy.Ship("Ship2", 1, [])
        ship3 = fy.Ship("Ship3", 1, [])

        player.add_ship(ship)
        player.add_ship(ship2)
        player.add_ship(ship3)

        player.kill_ship(ship2)

        player.reset()
        self.assertEqual(player.get_score(), (0, 0))
    def test_add_ship(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])

        player.add_ship(ship)

        self.assertListEqual(player.ships, [ship])
    def test_get_alive2(self):
        ship = fy.Ship("Ship3", 2, [])

        ship.take_damage()
        ship.take_damage()

        self.assertFalse(ship.get_alive())
    def test_take_damage2(self):
        ship = fy.Ship("Ship3", 2, [])

        ship.take_damage()
        ship.take_damage()

        self.assertEqual(ship.get_health(), 0)
    def test_reset3(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [])
        ship2 = fy.Ship("Ship2", 1, [])
        ship3 = fy.Ship("Ship3", 1, [])

        player.add_ship(ship)
        player.add_ship(ship2)
        player.add_ship(ship3)

        player.kill_ship(ship2)

        player.add_win()

        player.reset()
        self.assertEqual(player.get_wins(), 1)
    def test_hit_check_hit_no_kill(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 2, [(1, 2), (2, 2)])

        player.add_ship(ship)
        hit, kill = fy.hit_check(1, 2, player)
        self.assertTrue(hit)
        self.assertFalse(kill)
    def test_hit_check_miss(self):
        player = fy.Players("Player")
        ship = fy.Ship("Ship", 1, [(1, 2)])

        player.add_ship(ship)
        hit, kill = fy.hit_check(1, 1, player)
        self.assertFalse(hit)
        self.assertFalse(kill)
    def test_ship_creation(self):
        ship = fy.Ship("Ship1", 3, [])

        self.assertIsInstance(ship, fy.Ship)
    def test_get_health(self):
        ship = fy.Ship("Ship3", 2, [])

        self.assertEqual(ship.get_health(), 2)
    def test_get_alive1(self):
        ship = fy.Ship("Ship2", 1, [])

        self.assertTrue(ship.get_alive())
 def test_coordinates(self):
     ship = fy.Ship("Ship", 2, [(1, 2), (2, 2)])
     self.assertListEqual(ship.coordinates, [(1, 2), (2, 2)])