diff --git a/HNS/Excercises/ShipCraft/.idea/.name b/HNS/Excercises/ShipCraft/.idea/.name index fc75dea..3d4f3fa 100644 --- a/HNS/Excercises/ShipCraft/.idea/.name +++ b/HNS/Excercises/ShipCraft/.idea/.name @@ -1 +1 @@ -ShipField.py \ No newline at end of file +test_ShipField.py \ No newline at end of file diff --git a/HNS/Excercises/ShipCraft/Переделка/__pycache__/test_ShipField.cpython-311.pyc b/HNS/Excercises/ShipCraft/Переделка/__pycache__/test_ShipField.cpython-311.pyc index da352d5..ff4a6d0 100644 Binary files a/HNS/Excercises/ShipCraft/Переделка/__pycache__/test_ShipField.cpython-311.pyc and b/HNS/Excercises/ShipCraft/Переделка/__pycache__/test_ShipField.cpython-311.pyc differ diff --git a/HNS/Excercises/ShipCraft/Переделка/test_ShipField.py b/HNS/Excercises/ShipCraft/Переделка/test_ShipField.py index 87908a1..02f9e22 100644 --- a/HNS/Excercises/ShipCraft/Переделка/test_ShipField.py +++ b/HNS/Excercises/ShipCraft/Переделка/test_ShipField.py @@ -1,8 +1,58 @@ from unittest import TestCase from ShipField import ShipField +from ShootResult import ShootResult class TestShipField(TestCase): + + 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 принял желаемое значение + def test_action(self): self.fail() @@ -10,38 +60,78 @@ class TestShipField(TestCase): self.fail() def test_clear_marker(self): - self.fail() + ship_field = ShipField() + ship_field.field[0] = 'p' + ship_field.field[ship_field.field_size - 1] = 'p' + + ship_field.clear_marker() + + self.assertNotIn('p', ship_field.field) + + def test_shoot_empty(self): + ship_field = ShipField() + + self.assertEqual(ship_field.field[0].strip(), '') + result = ship_field.shoot(0, 0) + + 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): self.fail() - def test_shoot(self): - self.fail() - def test_check_possible(self): self.fail() def test_check_blocked(self): self.fail() - def test_set_ship_size(self): - self.fail() - def test_set_ship_direction(self): - self.fail() + ship_field = ShipField() # Заводим объект типа ShipField + ship_field.set_ship_direction(1) + self.assertEqual(ship_field.ship_direction, 1) + + self.assertEqual(ship_field.ship_direction, 0) + + def test_toggle_ship_direction(self): self.fail() - def test_toggle_field_mode(self): - ship_field = ShipField() - self.assertEqual(ship_field.field_mode, 0) - - ship_field.toggle_field_mode() - self.assertEqual(ship_field.field_mode, 1) - - ship_field.toggle_field_mode() - self.assertEqual(ship_field.field_mode, 0) - - def test_print_field(self): - self.fail()