def test_12(self): """ Test the mixing of behaviors """ behMec = BehaviorAO.get_behavior(self.eidMech) behLud = BehaviorAO.get_behavior(self.eid1) bint = behMec & behLud bor = behMec | behLud bxor = behMec ^ behLud bdiff = behMec.difference(behLud) assert bint.behavior_type == "composed" assert bor.behavior_type == "composed" assert bxor.behavior_type == "composed" assert bdiff.behavior_type == "composed" self.assertRaises(TypeError, behMec.difference_update, behLud)
def test_08(self): print("test_08") """[summary] intersection test """ beh1 = BehaviorAO.get_behavior(self.eid1) beh2 = BehaviorAO.get_behavior(self.eid2) beh3 = beh1.intersection(beh2) assert beh3.external_id == "" assert len(beh3) == len(self.int) assert beh3.behavior_type == "LUDIC" for el in self.int: assert self.elAO[el] in beh3 for el in beh3.elements: assert ((el in beh2) and (el in beh1)) erro, msg = beh3.check_save() assert erro is RuntimeError self.assertRaises(RuntimeError, beh3.save)
def test_07_1(self): print("test_07_1") """[summary] difference test """ beh1 = BehaviorAO.get_behavior(self.eid1) beh2 = BehaviorAO.get_behavior(self.eid2) beh3 = beh2.difference(beh1) assert beh3.external_id == "" assert len(beh3) == len(self.diff2) assert beh3.behavior_type == "LUDIC" for el in self.diff2: assert self.elAO[el] in beh3 for el in beh3.elements: assert ((el in beh2) and (not (el in beh1))) erro, msg = beh3.check_save() assert erro is RuntimeError self.assertRaises(RuntimeError, beh3.save)
def init_elements(cls): cls.elDB=ElementDB.objects # pylint: disable=no-member cls.elAO = [el.to_obj() for el in cls.elDB] cls.interbeh = BehaviorAO(behavior_type="INTERACTIVITY") cls.ludbeh = BehaviorAO(behavior_type="LUDIC") for el in cls.inter: cls.interbeh.add(cls.elAO[el]) for el in cls.ludi: cls.ludbeh.add(cls.elAO[el]) cls.interbeh2 = BehaviorAO(behavior_type="INTERACTIVITY") cls.ludbeh2 = BehaviorAO(behavior_type="LUDIC") for el in cls.inter1: cls.interbeh2.add(cls.elAO[el]) for el in cls.ludi1: cls.ludbeh2.add(cls.elAO[el])
def init_interactivity_behavior_operand_comparators(cls): cls.interbehand = BehaviorAO() cls.interbehor = BehaviorAO() cls.interbehxor = BehaviorAO() cls.interbehdifference = BehaviorAO() cls.interbehinter = BehaviorAO() cls.interbehunion = BehaviorAO() for el in cls.interand: cls.interbehand.add(cls.elAO[el]) for el in cls.interor: cls.interbehor.add(cls.elAO[el]) for el in cls.interxor: cls.interbehxor.add(cls.elAO[el]) for el in cls.interdifference: cls.interbehdifference.add(cls.elAO[el]) for el in cls.interinter: cls.interbehinter.add(cls.elAO[el]) for el in cls.interunion: cls.interbehunion.add(cls.elAO[el])
def init_elements(cls): cls.elDB = ElementDB.objects # pylint: disable=no-member cls.elAO = [el.to_obj() for el in cls.elDB] cls.interbeh = BehaviorAO(behavior_type="INTERACTIVITY") cls.mechbeh = BehaviorAO(behavior_type="MECHANICAL") cls.devibeh = BehaviorAO(behavior_type="DEVICE") for el in cls.inter: cls.interbeh.add(cls.elAO[el]) for el in cls.mech: cls.mechbeh.add(cls.elAO[el]) for el in cls.devi: cls.devibeh.add(cls.elAO[el]) cls.interbeh2 = BehaviorAO(behavior_type="INTERACTIVITY") cls.mechbeh2 = BehaviorAO(behavior_type="MECHANICAL") cls.devibeh2 = BehaviorAO(behavior_type="DEVICE") for el in cls.inter1: cls.interbeh2.add(cls.elAO[el]) for el in cls.mech1: cls.mechbeh2.add(cls.elAO[el]) for el in cls.devi1: cls.devibeh2.add(cls.elAO[el])
def test_03(self): print("test_03") """[summary] Create a third behavior, of the different type as the 1st (store the external_id) Validation: Database accuses 3 behavior """ behMec = BehaviorAO.create_behavior("MECHANICAL") assert behMec.external_id is not None assert BehaviorDB.objects.count() == 3 # pylint: disable=no-member for idx in self.els2: behMec.add(self.elAO[idx]) behMec.save() assert len(behMec) == len(self.els2) self.__class__.eidMech = behMec.external_id
def test_01(self): """[summary] Create a behavior (store the external_id) Validation: Database accuses 1 behavior """ print("test_01") beh1 = BehaviorAO.create_behavior("LUDIC") assert beh1.external_id is not None assert BehaviorDB.objects.count() == 1 # pylint: disable=no-member for idx in self.els1: beh1.add(self.elAO[idx]) beh1.save() assert len(beh1) == len(self.els1) self.__class__.eid1 = beh1.external_id
def test_02(self): print("test_02") """[summary] Create a second behavior, of the same type as the 1st (store the external_id) Validation: Database accuses 2 behavior """ beh2 = BehaviorAO.create_behavior("LUDIC") assert beh2.external_id is not None assert BehaviorDB.objects.count() == 2 # pylint: disable=no-member for idx in self.els2: beh2.add(self.elAO[idx]) beh2.save() assert len(beh2) == len(self.els2) self.__class__.eid2 = beh2.external_id pass
def test_11(self): print("test_11") """[summary] Add two behaviors Validation: Quantification test. """ """[summary] union test """ """[summary] Or test """ beh1 = BehaviorAO.get_behavior(self.eid1) beh2 = BehaviorAO.get_behavior(self.eid2) beh3 = beh1 + beh2 beh4 = beh1 ^ beh2 beh5 = beh1 & beh2 assert beh3.external_id == "" assert beh3.behavior_type == "LUDIC" for el in beh4.elements: assert beh3.element_count.count(el) == 1 for el in beh5.elements: assert beh3.element_count.count(el) == 2 assert len(beh3.element_count) == len(beh1) + len(beh2)
def test_10_1(self): print("test_10_1") """[summary] add more elements to 1st behavior Validation: Check out the diffs """ """[summary] retrieve the 1st behavior add update elements to generate a diff Validation: Database behavior list of elements must be equal to the added Validation: Diff length must increase in 1 """ beh1 = BehaviorAO.get_behavior(self.eid1) currdiffdata = beh1.diffdata for el in self.els1_add2: beh1.add(self.elAO[el]) for el in self.els1_rem2: beh1.discard(self.elAO[el]) beh1.save() assert len(beh1.diffdata) == (len(currdiffdata) + 1) for el in self.els1_add2: assert self.elAO[el] in beh1 for el in self.els1_rem2: assert self.elAO[el] not in beh1
def init_device_behavior_operand_comparators(cls): cls.devibehand = BehaviorAO() cls.devibehor = BehaviorAO() cls.devibehxor = BehaviorAO() cls.devibehdifference = BehaviorAO() cls.devibehinter = BehaviorAO() cls.devibehunion = BehaviorAO() for el in cls.deviand: cls.devibehand.add(cls.elAO[el]) for el in cls.devior: cls.devibehor.add(cls.elAO[el]) for el in cls.devixor: cls.devibehxor.add(cls.elAO[el]) for el in cls.devidifference: cls.devibehdifference.add(cls.elAO[el]) for el in cls.deviinter: cls.devibehinter.add(cls.elAO[el]) for el in cls.deviunion: cls.devibehunion.add(cls.elAO[el])
def init_mechanical_behavior_operand_comparators(cls): cls.mechbehand = BehaviorAO() cls.mechbehor = BehaviorAO() cls.mechbehxor = BehaviorAO() cls.mechbehdifference = BehaviorAO() cls.mechbehinter = BehaviorAO() cls.mechbehunion = BehaviorAO() for el in cls.mechand: cls.mechbehand.add(cls.elAO[el]) for el in cls.mechor: cls.mechbehor.add(cls.elAO[el]) for el in cls.mechxor: cls.mechbehxor.add(cls.elAO[el]) for el in cls.mechdifference: cls.mechbehdifference.add(cls.elAO[el]) for el in cls.mechinter: cls.mechbehinter.add(cls.elAO[el]) for el in cls.mechunion: cls.mechbehunion.add(cls.elAO[el])
def init_gamefication_behavior_operand_comparators(cls): cls.gamefbehand = BehaviorAO() cls.gamefbehor = BehaviorAO() cls.gamefbehxor = BehaviorAO() cls.gamefbehdifference = BehaviorAO() cls.gamefbehinter = BehaviorAO() cls.gamefbehunion = BehaviorAO() for el in cls.gamefand: cls.gamefbehand.add(cls.elAO[el]) for el in cls.gamefor: cls.gamefbehor.add(cls.elAO[el]) for el in cls.gamefxor: cls.gamefbehxor.add(cls.elAO[el]) for el in cls.gamefdifference: cls.gamefbehdifference.add(cls.elAO[el]) for el in cls.gamefinter: cls.gamefbehinter.add(cls.elAO[el]) for el in cls.gamefunion: cls.gamefbehunion.add(cls.elAO[el])
def init_ludic_behavior_operand_comparators(cls): cls.ludbehand = BehaviorAO() cls.ludbehor = BehaviorAO() cls.ludbehxor = BehaviorAO() cls.ludbehdifference = BehaviorAO() cls.ludbehinter = BehaviorAO() cls.ludbehunion = BehaviorAO() for el in cls.ludand: cls.ludbehand.add(cls.elAO[el]) for el in cls.ludor: cls.ludbehor.add(cls.elAO[el]) for el in cls.ludxor: cls.ludbehxor.add(cls.elAO[el]) for el in cls.luddifference: cls.ludbehdifference.add(cls.elAO[el]) for el in cls.ludinter: cls.ludbehinter.add(cls.elAO[el]) for el in cls.ludunion: cls.ludbehunion.add(cls.elAO[el])