예제 #1
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #2
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #3
0
파일: test_dps.py 프로젝트: pyfa-org/eos
 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)
예제 #4
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #5
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)
예제 #6
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #7
0
파일: test_dps.py 프로젝트: pyfa-org/eos
 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)
예제 #8
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)
예제 #9
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #10
0
파일: test_dps.py 프로젝트: pyfa-org/eos
 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)
예제 #11
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)
예제 #12
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)
예제 #13
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)
예제 #14
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)
예제 #15
0
파일: test_dps.py 프로젝트: pyfa-org/eos
 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)
예제 #16
0
파일: test_dps.py 프로젝트: DarkFenX/eos
 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)