def test_dmg_profile_rah_to_default(self): # Setup ship = Ship(self.make_ship_type((0.5, 0.65, 0.75, 0.9)).id) self.fit.ship = ship rah = ModuleLow( self.make_rah_type((0.85, 0.85, 0.85, 0.85), 6, 1000).id, state=State.active) self.fit.modules.low.equip(rah) self.fit.rah_incoming_dmg = DmgProfile(1, 0, 0, 0) # Force resonance calculation self.assertAlmostEqual(rah.attrs[self.armor_em.id], 0.4) self.assertAlmostEqual(rah.attrs[self.armor_therm.id], 1) self.assertAlmostEqual(rah.attrs[self.armor_kin.id], 1) self.assertAlmostEqual(rah.attrs[self.armor_expl.id], 1) self.assertAlmostEqual(ship.attrs[self.armor_em.id], 0.2) self.assertAlmostEqual(ship.attrs[self.armor_therm.id], 0.65) self.assertAlmostEqual(ship.attrs[self.armor_kin.id], 0.75) self.assertAlmostEqual(ship.attrs[self.armor_expl.id], 0.9) # Action self.fit.rah_incoming_dmg = None # Verification self.assertAlmostEqual(rah.attrs[self.armor_em.id], 1) self.assertAlmostEqual(rah.attrs[self.armor_therm.id], 0.925) self.assertAlmostEqual(rah.attrs[self.armor_kin.id], 0.82) self.assertAlmostEqual(rah.attrs[self.armor_expl.id], 0.655) self.assertAlmostEqual(ship.attrs[self.armor_em.id], 0.5) self.assertAlmostEqual(ship.attrs[self.armor_therm.id], 0.60125) self.assertAlmostEqual(ship.attrs[self.armor_kin.id], 0.615) self.assertAlmostEqual(ship.attrs[self.armor_expl.id], 0.5895) # Cleanup self.assert_solsys_buffers_empty(self.fit.solar_system) self.assert_log_entries(0)
def test_ship_absent(self): # Action ehp_stats = self.fit.stats.get_ehp(DmgProfile(1, 1, 1, 1)) # Verification self.assertAlmostEqual(ehp_stats.hull, 0) self.assertAlmostEqual(ehp_stats.armor, 0) self.assertAlmostEqual(ehp_stats.shield, 0) self.assertAlmostEqual(ehp_stats.total, 0) # Cleanup self.assert_solsys_buffers_empty(self.fit.solar_system) self.assert_log_entries(0)
def test_item_not_loaded(self): fit = Fit() item = Ship(self.allocate_type_id()) fit.ship = item # Verification results = item.get_ehp(DmgProfile(1, 1, 1, 1)) self.assertAlmostEqual(results.hull, 0) self.assertAlmostEqual(results.armor, 0) self.assertAlmostEqual(results.shield, 0) self.assertAlmostEqual(results.total, 0) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)