Tests: nutze richtige Rüstung in den einzelnen Zonen
This commit is contained in:
+58
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user