Files
BattleTech/tests/test_mech_bau.py
T

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.assertEqual(2, len(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)