예제 #1
0
 def test_multi_item_not_loaded(self):
     effect1_id = self.allocate_effect_id()
     effect2_id = self.allocate_effect_id()
     effect3_id = self.allocate_effect_id()
     effect4_id = self.allocate_effect_id()
     item = ModuleHigh(self.allocate_type_id())
     self.fit.modules.high.append(item)
     # Verification
     item._set_effects_modes({
         effect1_id: EffectMode.full_compliance,
         effect2_id: EffectMode.state_compliance,
         effect3_id: EffectMode.force_run,
         effect4_id: EffectMode.force_stop})
     # Cleanup
     self.assert_solsys_buffers_empty(self.fit.solar_system)
     self.assert_log_entries(0)
예제 #2
0
 def test_multi_item_not_loaded(self):
     effect1_id = self.allocate_effect_id()
     effect2_id = self.allocate_effect_id()
     effect3_id = self.allocate_effect_id()
     effect4_id = self.allocate_effect_id()
     item = ModuleHigh(self.allocate_type_id())
     self.fit.modules.high.append(item)
     # Verification
     item._set_effects_modes({
         effect1_id: EffectMode.full_compliance,
         effect2_id: EffectMode.state_compliance,
         effect3_id: EffectMode.force_run,
         effect4_id: EffectMode.force_stop
     })
     # Cleanup
     self.assert_solsys_buffers_empty(self.fit.solar_system)
     self.assert_log_entries(0)
예제 #3
0
 def test_multi(self):
     src_attr_fullcomp = self.mkattr()
     tgt_attr_fullcomp = self.mkattr()
     modifier_fullcomp = self.mkmod(
         affectee_filter=ModAffecteeFilter.item,
         affectee_domain=ModDomain.self,
         affectee_attr_id=tgt_attr_fullcomp.id,
         operator=ModOperator.mod_add,
         affector_attr_id=src_attr_fullcomp.id)
     effect_fullcomp = self.mkeffect(
         category_id=EffectCategoryId.active,
         modifiers=[modifier_fullcomp])
     src_attr_statecomp = self.mkattr()
     tgt_attr_statecomp = self.mkattr()
     modifier_statecomp = self.mkmod(
         affectee_filter=ModAffecteeFilter.item,
         affectee_domain=ModDomain.self,
         affectee_attr_id=tgt_attr_statecomp.id,
         operator=ModOperator.mod_add,
         affector_attr_id=src_attr_statecomp.id)
     effect_statecomp = self.mkeffect(
         category_id=EffectCategoryId.active,
         modifiers=[modifier_statecomp])
     src_attr_forcerun = self.mkattr()
     tgt_attr_forcerun = self.mkattr()
     modifier_forcerun = self.mkmod(
         affectee_filter=ModAffecteeFilter.item,
         affectee_domain=ModDomain.self,
         affectee_attr_id=tgt_attr_forcerun.id,
         operator=ModOperator.mod_add,
         affector_attr_id=src_attr_forcerun.id)
     effect_forcerun = self.mkeffect(
         category_id=EffectCategoryId.overload,
         modifiers=[modifier_forcerun])
     src_attr_forcestop = self.mkattr()
     tgt_attr_forcestop = self.mkattr()
     modifier_forcestop = self.mkmod(
         affectee_filter=ModAffecteeFilter.item,
         affectee_domain=ModDomain.self,
         affectee_attr_id=tgt_attr_forcestop.id,
         operator=ModOperator.mod_add,
         affector_attr_id=src_attr_forcestop.id)
     effect_forcestop = self.mkeffect(
         category_id=EffectCategoryId.passive,
         modifiers=[modifier_forcestop])
     item = ModuleHigh(
         self.mktype(
             attrs={
                 tgt_attr_fullcomp.id: 10, src_attr_fullcomp.id: 2,
                 tgt_attr_statecomp.id: 10, src_attr_statecomp.id: 2,
                 tgt_attr_forcerun.id: 10, src_attr_forcerun.id: 2,
                 tgt_attr_forcestop.id: 10, src_attr_forcestop.id: 2},
             effects=(
                 effect_fullcomp, effect_statecomp,
                 effect_forcerun, effect_forcestop)).id,
         state=State.active)
     self.fit.modules.high.append(item)
     self.assertAlmostEqual(item.attrs[tgt_attr_fullcomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_statecomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcerun.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcestop.id], 12)
     # Action
     item._set_effects_modes({
         effect_fullcomp.id: EffectMode.full_compliance,
         effect_statecomp.id: EffectMode.state_compliance,
         effect_forcerun.id: EffectMode.force_run,
         effect_forcestop.id: EffectMode.force_stop})
     # Verification
     self.assertAlmostEqual(item.attrs[tgt_attr_fullcomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_statecomp.id], 12)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcerun.id], 12)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcestop.id], 10)
     # Cleanup
     self.assert_solsys_buffers_empty(self.fit.solar_system)
     self.assert_log_entries(0)
예제 #4
0
 def test_multi(self):
     src_attr_fullcomp = self.mkattr()
     tgt_attr_fullcomp = self.mkattr()
     modifier_fullcomp = self.mkmod(affectee_filter=ModAffecteeFilter.item,
                                    affectee_domain=ModDomain.self,
                                    affectee_attr_id=tgt_attr_fullcomp.id,
                                    operator=ModOperator.mod_add,
                                    affector_attr_id=src_attr_fullcomp.id)
     effect_fullcomp = self.mkeffect(category_id=EffectCategoryId.active,
                                     modifiers=[modifier_fullcomp])
     src_attr_statecomp = self.mkattr()
     tgt_attr_statecomp = self.mkattr()
     modifier_statecomp = self.mkmod(affectee_filter=ModAffecteeFilter.item,
                                     affectee_domain=ModDomain.self,
                                     affectee_attr_id=tgt_attr_statecomp.id,
                                     operator=ModOperator.mod_add,
                                     affector_attr_id=src_attr_statecomp.id)
     effect_statecomp = self.mkeffect(category_id=EffectCategoryId.active,
                                      modifiers=[modifier_statecomp])
     src_attr_forcerun = self.mkattr()
     tgt_attr_forcerun = self.mkattr()
     modifier_forcerun = self.mkmod(affectee_filter=ModAffecteeFilter.item,
                                    affectee_domain=ModDomain.self,
                                    affectee_attr_id=tgt_attr_forcerun.id,
                                    operator=ModOperator.mod_add,
                                    affector_attr_id=src_attr_forcerun.id)
     effect_forcerun = self.mkeffect(category_id=EffectCategoryId.overload,
                                     modifiers=[modifier_forcerun])
     src_attr_forcestop = self.mkattr()
     tgt_attr_forcestop = self.mkattr()
     modifier_forcestop = self.mkmod(affectee_filter=ModAffecteeFilter.item,
                                     affectee_domain=ModDomain.self,
                                     affectee_attr_id=tgt_attr_forcestop.id,
                                     operator=ModOperator.mod_add,
                                     affector_attr_id=src_attr_forcestop.id)
     effect_forcestop = self.mkeffect(category_id=EffectCategoryId.passive,
                                      modifiers=[modifier_forcestop])
     item = ModuleHigh(self.mktype(
         attrs={
             tgt_attr_fullcomp.id: 10,
             src_attr_fullcomp.id: 2,
             tgt_attr_statecomp.id: 10,
             src_attr_statecomp.id: 2,
             tgt_attr_forcerun.id: 10,
             src_attr_forcerun.id: 2,
             tgt_attr_forcestop.id: 10,
             src_attr_forcestop.id: 2
         },
         effects=(effect_fullcomp, effect_statecomp, effect_forcerun,
                  effect_forcestop)).id,
                       state=State.active)
     self.fit.modules.high.append(item)
     self.assertAlmostEqual(item.attrs[tgt_attr_fullcomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_statecomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcerun.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcestop.id], 12)
     # Action
     item._set_effects_modes({
         effect_fullcomp.id: EffectMode.full_compliance,
         effect_statecomp.id: EffectMode.state_compliance,
         effect_forcerun.id: EffectMode.force_run,
         effect_forcestop.id: EffectMode.force_stop
     })
     # Verification
     self.assertAlmostEqual(item.attrs[tgt_attr_fullcomp.id], 10)
     self.assertAlmostEqual(item.attrs[tgt_attr_statecomp.id], 12)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcerun.id], 12)
     self.assertAlmostEqual(item.attrs[tgt_attr_forcestop.id], 10)
     # Cleanup
     self.assert_solsys_buffers_empty(self.fit.solar_system)
     self.assert_log_entries(0)