2024-03-11 05:32:25 +01:00
|
|
|
from unittest import TestCase
|
|
|
|
from ShipField import ShipField
|
2024-03-11 18:56:56 +01:00
|
|
|
from ShootResult import ShootResult
|
2024-03-11 05:32:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
class TestShipField(TestCase):
|
2024-03-11 18:56:56 +01:00
|
|
|
|
|
|
|
def test_set_ship_size(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
|
|
|
|
ship_field.set_ship_size(1)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(2)
|
|
|
|
self.assertEqual(ship_field.ship_size, 2)
|
|
|
|
ship_field.set_ship_size(3)
|
|
|
|
self.assertEqual(ship_field.ship_size, 3)
|
|
|
|
ship_field.set_ship_size(4)
|
|
|
|
self.assertEqual(ship_field.ship_size, 4)
|
|
|
|
|
|
|
|
def test_set_ship_size_outofrange(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
ship_field.set_ship_size(1)
|
|
|
|
|
|
|
|
ship_field.set_ship_size(-1)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(0)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(6)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(100)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
|
|
|
|
def test_set_ship_size_wrongtype(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
ship_field.set_ship_size(1)
|
|
|
|
|
|
|
|
ship_field.set_ship_size([])
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size('')
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(None)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
ship_field.set_ship_size(False)
|
|
|
|
self.assertEqual(ship_field.ship_size, 1)
|
|
|
|
|
|
|
|
def test_toggle_field_mode(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
self.assertEqual(ship_field.field_mode, 0) # Проверяем, что изначальное значение field_mode равно 0
|
|
|
|
|
|
|
|
ship_field.toggle_field_mode() # Вызываем метод, который тестируем
|
|
|
|
self.assertEqual(ship_field.field_mode, 1) # Проверяем, что field_mode принял желаемое значение
|
|
|
|
|
|
|
|
ship_field.toggle_field_mode() # Вызываем метод, который тестируем
|
|
|
|
self.assertEqual(ship_field.field_mode, 0) # Проверяем, что field_mode принял желаемое значение
|
|
|
|
|
2024-03-11 05:32:25 +01:00
|
|
|
def test_action(self):
|
|
|
|
self.fail()
|
|
|
|
|
|
|
|
def test_target(self):
|
|
|
|
self.fail()
|
|
|
|
|
|
|
|
def test_clear_marker(self):
|
2024-03-11 18:56:56 +01:00
|
|
|
ship_field = ShipField()
|
|
|
|
ship_field.field[0] = 'p'
|
|
|
|
ship_field.field[ship_field.field_size - 1] = 'p'
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
ship_field.clear_marker()
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
self.assertNotIn('p', ship_field.field)
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
def test_shoot_empty(self):
|
|
|
|
ship_field = ShipField()
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
self.assertEqual(ship_field.field[0].strip(), '')
|
|
|
|
result = ship_field.shoot(0, 0)
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
self.assertEqual(ship_field.field[0].strip(), '0')
|
|
|
|
self.assertEqual(result, ShootResult.EMPTY)
|
|
|
|
|
|
|
|
def test_shoot_ship(self):
|
|
|
|
ship_field = ShipField()
|
|
|
|
|
|
|
|
ship_field.field[0] = '1'
|
|
|
|
result = ship_field.shoot(0, 0)
|
|
|
|
|
|
|
|
self.assertEqual(ship_field.field[0].strip(), '\\')
|
|
|
|
self.assertEqual(result, ShootResult.DAMAGED)
|
|
|
|
|
|
|
|
def test_shoot_unknown(self):
|
|
|
|
ship_field = ShipField()
|
|
|
|
|
|
|
|
ship_field.field[0] = 'x'
|
|
|
|
result = ship_field.shoot(0, 0)
|
|
|
|
|
|
|
|
self.assertEqual(ship_field.field[0].strip(), 'x')
|
|
|
|
self.assertEqual(result, ShootResult.UNDEFINED)
|
|
|
|
|
|
|
|
def test_shoot_outofrange(self):
|
|
|
|
ship_field = ShipField()
|
|
|
|
old_field_string = str.join(' ', ship_field.field)
|
|
|
|
|
|
|
|
result = ship_field.shoot(-1, -1)
|
|
|
|
self.assertEqual(result, ShootResult.UNDEFINED)
|
|
|
|
|
|
|
|
result = ship_field.shoot(-1, 0)
|
|
|
|
self.assertEqual(result, ShootResult.UNDEFINED)
|
|
|
|
|
|
|
|
result = ship_field.shoot(1000, 1000)
|
|
|
|
self.assertEqual(result, ShootResult.UNDEFINED)
|
|
|
|
|
|
|
|
result = ship_field.shoot(0, 1000)
|
|
|
|
self.assertEqual(result, ShootResult.UNDEFINED)
|
|
|
|
|
|
|
|
new_field_string = str.join(' ', ship_field.field)
|
|
|
|
self.assertEqual(new_field_string, old_field_string)
|
|
|
|
|
|
|
|
def test_set_ship(self):
|
2024-03-11 05:32:25 +01:00
|
|
|
self.fail()
|
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
def test_check_possible(self):
|
2024-03-11 05:32:25 +01:00
|
|
|
self.fail()
|
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
def test_check_blocked(self):
|
2024-03-11 05:32:25 +01:00
|
|
|
self.fail()
|
|
|
|
|
2024-03-11 18:56:56 +01:00
|
|
|
def test_set_ship_direction(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
ship_field.set_ship_direction(1)
|
|
|
|
self.assertEqual(ship_field.ship_direction, 1)
|
2024-03-14 20:06:56 +01:00
|
|
|
|
|
|
|
ship_field.set_ship_direction(0)
|
2024-03-11 18:56:56 +01:00
|
|
|
self.assertEqual(ship_field.ship_direction, 0)
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-14 20:06:56 +01:00
|
|
|
def test_set_ship_direction_outofrange(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
ship_field.set_ship_direction(1)
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-14 20:06:56 +01:00
|
|
|
ship_field.set_ship_direction(-1)
|
|
|
|
ship_field.set_ship_direction(2)
|
|
|
|
self.assertEqual(ship_field.ship_direction, 1)
|
2024-03-11 05:32:25 +01:00
|
|
|
|
2024-03-14 20:06:56 +01:00
|
|
|
def test_set_ship_direction_wrongtype(self):
|
|
|
|
ship_field = ShipField() # Заводим объект типа ShipField
|
|
|
|
ship_field.set_ship_direction(1)
|
|
|
|
|
|
|
|
ship_field.set_ship_direction(None)
|
|
|
|
ship_field.set_ship_direction([2])
|
|
|
|
ship_field.set_ship_direction({})
|
|
|
|
self.assertEqual(ship_field.ship_direction, 1)
|
2024-03-11 18:56:56 +01:00
|
|
|
|
2024-03-14 20:06:56 +01:00
|
|
|
def test_toggle_ship_direction(self):
|
|
|
|
#arrangement установка
|
|
|
|
# action действие
|
|
|
|
#assertion проверка
|
|
|
|
ship_field = ShipField()
|
|
|
|
ship_field.toggle_ship_direction()
|
|
|
|
self.assertEqual(ship_field.ship_direction, 1)
|