Tests: nutze richtige Rüstung in den einzelnen Zonen

This commit is contained in:
2025-09-01 16:33:19 +02:00
parent 1c15f4edcf
commit 94ceb5af66
4 changed files with 84 additions and 2 deletions
+58 -2
View File
@@ -1,9 +1,30 @@
import unittest
from tokenize import group
from MechFabrik import MechFabrik
from MechFabrik.bauteile import InnerStructure, Gyroskope, AreaNames, Area, Cockpit, Item, ItemTypes, Reaktor, Mech
INNER_AMOR = {
AreaNames.HEAD: 3,
AreaNames.MIDDLE_TORSO: 6,
AreaNames.LEFT_TORSO: 5,
AreaNames.RIGHT_TORSO: 5,
AreaNames.LEFT_ARM: 3,
AreaNames.RIGHT_ARM: 3,
AreaNames.LEFT_LEG: 4,
AreaNames.RIGHT_LEG: 4,
}
OUTER_AMOR = {
AreaNames.HEAD: 6,
AreaNames.MIDDLE_TORSO: 9,
AreaNames.LEFT_TORSO: 8,
AreaNames.RIGHT_TORSO: 8,
AreaNames.LEFT_ARM: 5,
AreaNames.RIGHT_ARM: 5,
AreaNames.LEFT_LEG: 7,
AreaNames.RIGHT_LEG: 7,
}
class TestMechBau(unittest.TestCase):
@@ -18,6 +39,12 @@ class TestMechBau(unittest.TestCase):
self.assertIsInstance(mech.movement_rate, int)
self.assertEqual(8, mech.movement_rate)
for ara_name in AreaNames:
area = mech.inner_structure.areas.get(ara_name)
should_inner_amor = INNER_AMOR[ara_name]
self.assertEqual(should_inner_amor, area.inner_armor)
self.assertEqual(0, area.armor)
self.assertIsInstance(mech.inner_structure, InnerStructure)
self.assertIsInstance(mech.inner_structure.tonnage, float)
self.assertEqual(2.0, mech.inner_structure.tonnage)
@@ -106,7 +133,7 @@ class TestMechBau(unittest.TestCase):
def _test_for_side_torso_items(self, area: Area):
self.assertEqual(12, len(area.items))
for (group, key) in ((group, key + 1) for group in [1,2] for key in range(6)):
for (group, key) in ((group, key + 1) for group in [1, 2] for key in range(6)):
self.assertIsNone(area.items[key])
def _test_for_arm_items(self, area: Area):
@@ -137,3 +164,32 @@ class TestMechBau(unittest.TestCase):
for (key, item_type) in should_list:
self.assertIsInstance(area.items[key], Item)
self.assertEqual(area.items[key].type, item_type)
class TextMechAmor(unittest.TestCase):
def setUp(self):
fabrik = MechFabrik('Heuschrecke', 20.0, 8)
fabrik.setHeadAmore(OUTER_AMOR[AreaNames.HEAD])
fabrik.setMidleTorsoAmore(OUTER_AMOR[AreaNames.MIDDLE_TORSO])
fabrik.setSideTorsoAmore(OUTER_AMOR[AreaNames.LEFT_TORSO])
fabrik.setArmAmore(OUTER_AMOR[AreaNames.LEFT_ARM])
fabrik.setLegAmore(OUTER_AMOR[AreaNames.LEFT_LEG])
self.mech = fabrik.auslieferung()
def test_build(self):
for area_name in AreaNames:
area = self.mech.inner_structure.areas.get(area_name)
should_outer_amor = OUTER_AMOR[area_name]
self.assertEqual(should_outer_amor, area.armor)
def test_process(self):
for area_name in AreaNames:
self.mech.strike(area_name, 3)
self.assertEqual(OUTER_AMOR[area_name] - 3, self.mech.inner_structure.areas.get(area_name).armor)
self.mech.strike(area_name, OUTER_AMOR[area_name] - 2)
self.assertEqual(0, self.mech.inner_structure.areas.get(area_name).armor)
self.assertEqual(2, self.mech.inner_structure.areas.get(area_name).inner_armor)