def test_charge_not_loaded(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.capacity: 60.0, self.cycle_attr.id: 5000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000, AttrId.module_reactivation_delay: 120000}, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge(self.allocate_type_id()) fit.modules.high.append(item) # Verification dps = item.get_dps() self.assertAlmostEqual(dps.em, 0) self.assertAlmostEqual(dps.thermal, 0) self.assertAlmostEqual(dps.kinetic, 0) self.assertAlmostEqual(dps.explosive, 0) self.assertAlmostEqual(dps.total, 0) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.capacity: 60.0, self.cycle_attr.id: 5000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000, AttrId.module_reactivation_delay: 120000}, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge(self.mktype( attrs={ AttrId.volume: 30.0, AttrId.em_dmg: 5200, AttrId.therm_dmg: 6300, AttrId.kin_dmg: 7400, AttrId.expl_dmg: 8500}, effects=[self.effect_charge], default_effect=self.effect_charge).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) # Reload doesn't affect DPS because reactivation time is higher, item # manages to reload during that time self.assertAlmostEqual(dps.em, 41.6) self.assertAlmostEqual(dps.thermal, 50.4) self.assertAlmostEqual(dps.kinetic, 59.2) self.assertAlmostEqual(dps.explosive, 68) self.assertAlmostEqual(dps.total, 219.2) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.capacity: 2.0, self.cycle_attr.id: 2000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000}, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge(self.mktype( attrs={ AttrId.volume: 0.1, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5}, effects=[self.effect_charge], default_effect=self.effect_charge).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 2.08) self.assertAlmostEqual(dps.thermal, 2.52) self.assertAlmostEqual(dps.kinetic, 2.96) self.assertAlmostEqual(dps.explosive, 3.4) self.assertAlmostEqual(dps.total, 10.96) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.dmg_mult: 2.5, AttrId.capacity: 2.0, self.cycle_attr.id: 500, AttrId.charge_rate: 1.0, AttrId.reload_time: 5000}, effects=[self.effect], default_effect=self.effect).id, state=State.active) item.charge = Charge(self.mktype(attrs={ AttrId.volume: 0.2, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5}).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 13) self.assertAlmostEqual(dps.thermal, 15.75) self.assertAlmostEqual(dps.kinetic, 18.5) self.assertAlmostEqual(dps.explosive, 21.25) self.assertAlmostEqual(dps.total, 68.5) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reactivation_shorter_than_reload(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.dmg_mult: 2.5, AttrId.capacity: 2.0, self.cycle_attr.id: 500, AttrId.charge_rate: 1.0, AttrId.reload_time: 6500, AttrId.module_reactivation_delay: 1500 }, effects=[self.effect], default_effect=self.effect).id, state=State.active) item.charge = Charge( self.mktype( attrs={ AttrId.volume: 0.2, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5 }).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 5.2) self.assertAlmostEqual(dps.thermal, 6.3) self.assertAlmostEqual(dps.kinetic, 7.4) self.assertAlmostEqual(dps.explosive, 8.5) self.assertAlmostEqual(dps.total, 27.4) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_no_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.capacity: 2.0, self.cycle_attr.id: 2000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000}, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge(self.mktype( attrs={ AttrId.volume: 0.1, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5}, effects=[self.effect_charge], default_effect=self.effect_charge).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=False) self.assertAlmostEqual(dps.em, 2.6) self.assertAlmostEqual(dps.thermal, 3.15) self.assertAlmostEqual(dps.kinetic, 3.7) self.assertAlmostEqual(dps.explosive, 4.25) self.assertAlmostEqual(dps.total, 13.7) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.dmg_mult: 2.5, AttrId.capacity: 0.2, self.cycle_attr.id: 500, AttrId.reload_time: 5000 }, effects=[self.effect], default_effect=self.effect).id, state=State.active) item.charge = Charge( self.mktype( attrs={ AttrId.volume: 0.1, AttrId.hp: 2.0, AttrId.crystals_get_damaged: 1.0, AttrId.crystal_volatility_dmg: 0.8, AttrId.crystal_volatility_chance: 0.5, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5 }).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 13) self.assertAlmostEqual(dps.thermal, 15.75) self.assertAlmostEqual(dps.kinetic, 18.5) self.assertAlmostEqual(dps.explosive, 21.25) self.assertAlmostEqual(dps.total, 68.5) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_effective(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.dmg_mult: 2.5, AttrId.capacity: 2.0, self.cycle_attr.id: 500, AttrId.charge_rate: 1.0, AttrId.reload_time: 5000 }, effects=[self.effect], default_effect=self.effect).id, state=State.active) item.charge = Charge( self.mktype( attrs={ AttrId.volume: 0.2, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5 }).id) fit.modules.high.append(item) # Verification profile = ResistProfile(0.2, 0.2, 0.8, 1) dps = item.get_dps(tgt_resists=profile) self.assertAlmostEqual(dps.em, 20.8) self.assertAlmostEqual(dps.thermal, 25.2) self.assertAlmostEqual(dps.kinetic, 7.4) self.assertAlmostEqual(dps.explosive, 0) self.assertAlmostEqual(dps.total, 53.4) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_no_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.dmg_mult: 2.5, AttrId.capacity: 2.0, self.cycle_attr.id: 500, AttrId.reload_time: 5000}, effects=[self.effect], default_effect=self.effect).id, state=State.active) item.charge = Charge(self.mktype(attrs={ AttrId.volume: 0.2, AttrId.hp: 2.0, AttrId.crystals_get_damaged: 1.0, AttrId.crystal_volatility_dmg: 0.025, AttrId.crystal_volatility_chance: 0.1, AttrId.em_dmg: 5.2, AttrId.therm_dmg: 6.3, AttrId.kin_dmg: 7.4, AttrId.expl_dmg: 8.5}).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=False) self.assertAlmostEqual(dps.em, 26) self.assertAlmostEqual(dps.thermal, 31.5) self.assertAlmostEqual(dps.kinetic, 37) self.assertAlmostEqual(dps.explosive, 42.5) self.assertAlmostEqual(dps.total, 137) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.capacity: 60.0, self.cycle_attr.id: 5000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000, AttrId.module_reactivation_delay: 120000 }, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge( self.mktype(attrs={ AttrId.volume: 30.0, AttrId.em_dmg: 5200, AttrId.therm_dmg: 6300, AttrId.kin_dmg: 7400, AttrId.expl_dmg: 8500 }, effects=[self.effect_charge], default_effect=self.effect_charge).id) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) # Reload doesn't affect DPS because reactivation time is higher, item # manages to reload during that time self.assertAlmostEqual(dps.em, 41.6) self.assertAlmostEqual(dps.thermal, 50.4) self.assertAlmostEqual(dps.kinetic, 59.2) self.assertAlmostEqual(dps.explosive, 68) self.assertAlmostEqual(dps.total, 219.2) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_item_not_loaded(self): fit = Fit() item = ModuleHigh(self.allocate_type_id(), state=State.active) fit.modules.high.append(item) # Verification dps = item.get_dps() self.assertAlmostEqual(dps.em, 0) self.assertAlmostEqual(dps.thermal, 0) self.assertAlmostEqual(dps.kinetic, 0) self.assertAlmostEqual(dps.explosive, 0) self.assertAlmostEqual(dps.total, 0) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.em_dmg: 52, AttrId.therm_dmg: 63, AttrId.kin_dmg: 74, AttrId.expl_dmg: 85, self.cycle_attr.id: 5000 }, effects=[self.effect], default_effect=self.effect).id, state=State.active) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 10.4) self.assertAlmostEqual(dps.thermal, 12.6) self.assertAlmostEqual(dps.kinetic, 14.8) self.assertAlmostEqual(dps.explosive, 17) self.assertAlmostEqual(dps.total, 54.8) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_no_reload(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.em_dmg: 52000, AttrId.therm_dmg: 63000, AttrId.kin_dmg: 74000, AttrId.expl_dmg: 85000, self.cycle_attr.id: 250000 }, effects=[self.effect_amarr], default_effect=self.effect_amarr).id, state=State.active) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=False) self.assertAlmostEqual(dps.em, 208) self.assertAlmostEqual(dps.thermal, 252) self.assertAlmostEqual(dps.kinetic, 296) self.assertAlmostEqual(dps.explosive, 340) self.assertAlmostEqual(dps.total, 1096) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.em_dmg: 52, AttrId.therm_dmg: 63, AttrId.kin_dmg: 74, AttrId.expl_dmg: 85, self.cycle_attr.id: 5000}, effects=[self.effect], default_effect=self.effect).id, state=State.active) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=True) self.assertAlmostEqual(dps.em, 10.4) self.assertAlmostEqual(dps.thermal, 12.6) self.assertAlmostEqual(dps.kinetic, 14.8) self.assertAlmostEqual(dps.explosive, 17) self.assertAlmostEqual(dps.total, 54.8) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_charge_not_loaded(self): fit = Fit() item = ModuleHigh(self.mktype(attrs={ AttrId.capacity: 60.0, self.cycle_attr.id: 5000, AttrId.charge_rate: 1.0, AttrId.reload_time: 10000, AttrId.module_reactivation_delay: 120000 }, effects=[self.effect_item], default_effect=self.effect_item).id, state=State.active) item.charge = Charge(self.allocate_type_id()) fit.modules.high.append(item) # Verification dps = item.get_dps() self.assertAlmostEqual(dps.em, 0) self.assertAlmostEqual(dps.thermal, 0) self.assertAlmostEqual(dps.kinetic, 0) self.assertAlmostEqual(dps.explosive, 0) self.assertAlmostEqual(dps.total, 0) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)
def test_no_reload(self): fit = Fit() item = ModuleHigh( self.mktype( attrs={ AttrId.em_dmg: 52000, AttrId.therm_dmg: 63000, AttrId.kin_dmg: 74000, AttrId.expl_dmg: 85000, self.cycle_attr.id: 250000}, effects=[self.effect_amarr], default_effect=self.effect_amarr).id, state=State.active) fit.modules.high.append(item) # Verification dps = item.get_dps(reload=False) self.assertAlmostEqual(dps.em, 208) self.assertAlmostEqual(dps.thermal, 252) self.assertAlmostEqual(dps.kinetic, 296) self.assertAlmostEqual(dps.explosive, 340) self.assertAlmostEqual(dps.total, 1096) # Cleanup self.assert_solsys_buffers_empty(fit.solar_system) self.assert_log_entries(0)