Tests: nutze richtige Rüstung in den einzelnen Zonen
This commit is contained in:
@@ -10,36 +10,44 @@ object Sustainment
|
||||
object Sensors
|
||||
object Head <<Area>> {
|
||||
item_lines: 6
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object Cockpit <<Cockpit>>
|
||||
object Reaktor <<Reaktor>>
|
||||
object TorsoMiddle <<Area>> {
|
||||
item_lines: 12
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object TorsoLeft <<Area>> {
|
||||
item_lines: 12
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object ArmLeft <<Area>> {
|
||||
item_lines: 12
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object LegLeft <<Area>> {
|
||||
item_lines: 6
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object TorsoRight <<Area>> {
|
||||
item_lines: 12
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object ArmRight <<Area>> {
|
||||
item_lines: 12
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object LegRight <<Area>> {
|
||||
item_lines: 6
|
||||
inner_armor: #
|
||||
amor: #
|
||||
}
|
||||
object JointAL as "Joint"
|
||||
|
||||
@@ -101,3 +101,18 @@ class MechFabrik(object):
|
||||
|
||||
def auslieferung(self) -> Mech:
|
||||
return self._mech
|
||||
|
||||
def setHeadAmore(self, param):
|
||||
pass
|
||||
|
||||
def setMidleTorsoAmore(self, param):
|
||||
pass
|
||||
|
||||
def setSideTorsoAmore(self, param):
|
||||
pass
|
||||
|
||||
def setArmAmore(self, param):
|
||||
pass
|
||||
|
||||
def setLegAmore(self, param):
|
||||
pass
|
||||
|
||||
@@ -153,3 +153,6 @@ class Mech(object):
|
||||
|
||||
def set_item(self, key: tuple, item: Item):
|
||||
pass
|
||||
|
||||
def strike(self, area_name, param):
|
||||
pass
|
||||
|
||||
+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