72 lines
3.3 KiB
Python
Executable File
72 lines
3.3 KiB
Python
Executable File
import unittest
|
|
|
|
from MechFabrik import MechFabrik
|
|
from MechFabrik.bauteile import InnerStructure, Gyroskope, AreaNames, Area, Cockpit, Reaktor, Mech
|
|
|
|
|
|
class TestMechBau(unittest.TestCase):
|
|
|
|
def test_simple(self):
|
|
fabrik = MechFabrik('Heuschrecke', 20.0, 8)
|
|
mech = fabrik.auslieferung()
|
|
self.assertIsInstance(mech, Mech)
|
|
self.assertIsInstance(mech.name, str)
|
|
self.assertEqual('Heuschrecke', mech.name)
|
|
self.assertIsInstance(mech.tonnage, float)
|
|
self.assertEqual(20.0, mech.tonnage)
|
|
self.assertIsInstance(mech.movement_rate, int)
|
|
self.assertEqual(8, mech.movement_rate)
|
|
|
|
self.assertIsInstance(mech.inner_structure, InnerStructure)
|
|
self.assertIsInstance(mech.inner_structure.tonnage, float)
|
|
self.assertEqual(2.0, mech.inner_structure.tonnage)
|
|
|
|
self.assertIsInstance(mech.inner_structure.gyroskope, Gyroskope)
|
|
self.assertIsInstance(mech.inner_structure.gyroskope.tonnage, float)
|
|
self.assertEqual(2.0, mech.inner_structure.gyroskope.tonnage)
|
|
self.assertIsInstance(mech.inner_structure.areas, dict)
|
|
|
|
area_head = mech.inner_structure.areas.get(AreaNames.HEAD)
|
|
self.assertIsInstance(area_head, Area)
|
|
cockpit = area_head.cockpit
|
|
self.assertIsInstance(cockpit, Cockpit)
|
|
self.assertIsInstance(cockpit.tonnage, float)
|
|
self.assertEqual(3.0, cockpit.tonnage)
|
|
|
|
middle_torso = mech.inner_structure.areas.get(AreaNames.MIDDLE_TORSO)
|
|
self.assertIsInstance(middle_torso, Area)
|
|
reactor = middle_torso.reactor
|
|
self.assertIsInstance(reactor, Reaktor)
|
|
self.assertIsInstance(reactor.value, int)
|
|
self.assertEqual(160, reactor.value)
|
|
self.assertIsInstance(reactor.tonnage, float)
|
|
self.assertEqual(6.0, reactor.tonnage)
|
|
self.assertIsNone(middle_torso.parent)
|
|
self.assertIsInstance(middle_torso.children, list)
|
|
#right_torso = self._test_area(mech = mech, parent = middle_torso, index = AreaNames.RIGHT_TORSO)
|
|
#left_torso = self._test_area(mech = mech, parent = middle_torso, index = AreaNames.LEFT_TORSO)
|
|
#self.assertCountEqual([right_torso, left_torso], middle_torso.children)
|
|
|
|
#self._test_limbs(mech = mech, parent = right_torso, index = AreaNames.RIGHT_ARM)
|
|
#self._test_limbs(mech = mech, parent = right_torso, index = AreaNames.RIGHT_LEG)
|
|
#self._test_limbs(mech = mech, parent = left_torso, index = AreaNames.LEFT_ARM)
|
|
#self._test_limbs(mech = mech, parent = left_torso, index = AreaNames.LEFT_LEG)
|
|
|
|
def _test_area(self, mech: Mech, parent: Area, index: AreaNames):
|
|
side_torso = mech.inner_structure.areas.get(index)
|
|
self.assertIsInstance(side_torso, Area)
|
|
self.assertIsInstance(side_torso.parent, Area)
|
|
self.assertEqual(parent, side_torso.parent)
|
|
self.assertIsInstance(side_torso.children, list)
|
|
self.assertCountEqual([0, 0], side_torso.children)
|
|
return side_torso
|
|
|
|
def _test_limbs(self, mech: Mech, parent: Area, index: AreaNames):
|
|
limbs_area = mech.inner_structure.areas.get(index)
|
|
self.assertIsInstance(limbs_area, Area)
|
|
self.assertIsInstance(limbs_area.parent, Area)
|
|
self.assertEqual(parent, limbs_area.parent)
|
|
self.assertIsInstance(limbs_area.children, list)
|
|
self.assertCountEqual([], limbs_area.children)
|
|
|