From cffb81c0f6aa505ca1032cf24f8727ad296d2426 Mon Sep 17 00:00:00 2001 From: lfrenot <leon.frenot@ens-lyon.fr> Date: Tue, 5 Jul 2022 15:31:52 +0200 Subject: [PATCH] ajout des tests post-refactoring + correction de bugs --- .../java/avatartranslator/AvatarSetTimer.java | 5 + .../mutation/AddActionOnSignalMutation.java | 2 +- .../mutation/AddBlockMutation.java | 4 + .../mutation/AddRandomMutation.java | 2 +- .../mutation/AddRelationMutation.java | 4 + .../mutation/AssociationMutation.java | 2 +- .../mutation/MdRandomMutation.java | 8 +- .../mutation/MdSetTimerMutation.java | 13 +- .../mutation/RelationMutation.java | 4 + .../mutation/RmResetTimerMutation.java | 2 +- .../mutation/SwapActionMutation.java | 2 +- .../mutation/TransitionMutation.java | 38 +- .../UnnamedStateMachineElementMutation.java | 24 ++ .../avatartranslator/AvatarMutationTests.java | 341 +++++++++++------- 14 files changed, 287 insertions(+), 164 deletions(-) diff --git a/src/main/java/avatartranslator/AvatarSetTimer.java b/src/main/java/avatartranslator/AvatarSetTimer.java index aa668472bd..25e0808e52 100644 --- a/src/main/java/avatartranslator/AvatarSetTimer.java +++ b/src/main/java/avatartranslator/AvatarSetTimer.java @@ -72,5 +72,10 @@ public class AvatarSetTimer extends AvatarTimerOperator { public String getNiceName() { return "Setting of timer " + getName(); } + + @Override + public String toString() { + return toString(getTimerValue()); + } } diff --git a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java index bb1e909a83..d7fa275c82 100644 --- a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java @@ -55,7 +55,7 @@ public class AddActionOnSignalMutation extends ActionOnSignalMutation implements super(_blockName, _signalName); } - public AddActionOnSignalMutation(String _blockName, String _name, String _signalName) { + public AddActionOnSignalMutation(String _blockName, String _signalName, String _name) { super(_blockName, _name, NAME_TYPE, _signalName); } diff --git a/src/main/java/avatartranslator/mutation/AddBlockMutation.java b/src/main/java/avatartranslator/mutation/AddBlockMutation.java index b1886502d0..8c32caa6f1 100644 --- a/src/main/java/avatartranslator/mutation/AddBlockMutation.java +++ b/src/main/java/avatartranslator/mutation/AddBlockMutation.java @@ -55,6 +55,10 @@ public class AddBlockMutation extends BlockElementMutation implements AddMutatio super(_blockName); } + public AvatarBlock getElement(AvatarSpecification _avspec) { + return getBlock(_avspec); + } + //todo : graphic public AvatarBlock createElement(AvatarSpecification _avspec) { AvatarBlock block = new AvatarBlock(getBlockName(), _avspec, null); diff --git a/src/main/java/avatartranslator/mutation/AddRandomMutation.java b/src/main/java/avatartranslator/mutation/AddRandomMutation.java index c632ff4043..066f35dfbf 100644 --- a/src/main/java/avatartranslator/mutation/AddRandomMutation.java +++ b/src/main/java/avatartranslator/mutation/AddRandomMutation.java @@ -56,7 +56,7 @@ public class AddRandomMutation extends RandomMutation implements AddMutation { super(_blockName, _attributeName); } - public AddRandomMutation(String _blockName, String _name, String _attributeName) { + public AddRandomMutation(String _blockName, String _attributeName, String _name) { super(_blockName, _name, NAME_TYPE, _attributeName); } diff --git a/src/main/java/avatartranslator/mutation/AddRelationMutation.java b/src/main/java/avatartranslator/mutation/AddRelationMutation.java index 555168a60d..916c9d8582 100644 --- a/src/main/java/avatartranslator/mutation/AddRelationMutation.java +++ b/src/main/java/avatartranslator/mutation/AddRelationMutation.java @@ -54,6 +54,10 @@ public class AddRelationMutation extends RelationMutation implements AddMutation public AddRelationMutation(String _block1, String _block2) { super(_block1, _block2); } + + public AddRelationMutation(String _block1, String _block2, String _name) { + super(_block1, _block2, _name); + } //todo : graphic public AvatarRelation createElement(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/AssociationMutation.java b/src/main/java/avatartranslator/mutation/AssociationMutation.java index 1d2d306382..48979e2916 100644 --- a/src/main/java/avatartranslator/mutation/AssociationMutation.java +++ b/src/main/java/avatartranslator/mutation/AssociationMutation.java @@ -54,7 +54,7 @@ public abstract class AssociationMutation extends RelationMutation { setSignals(_signal1, _signal2); } - public AssociationMutation(String _relationString, int _relationType, String _signal1, String _signal2) { + protected AssociationMutation(String _relationString, int _relationType, String _signal1, String _signal2) { super(_relationString, _relationType); setSignals(_signal1, _signal2); } diff --git a/src/main/java/avatartranslator/mutation/MdRandomMutation.java b/src/main/java/avatartranslator/mutation/MdRandomMutation.java index 2dc07290b6..6ace3618a6 100644 --- a/src/main/java/avatartranslator/mutation/MdRandomMutation.java +++ b/src/main/java/avatartranslator/mutation/MdRandomMutation.java @@ -57,23 +57,23 @@ public class MdRandomMutation extends RandomMutation implements MdMutation { public MdRandomMutation(String _blockName, String _attributeName) { super(_blockName, _attributeName); - current = new MdRandomMutation(_blockName, _attributeName); + current = new NoneRandomMutation(_blockName, _attributeName); } public MdRandomMutation(String _blockName, String _attributeName, String _newAttributeName) { super(_blockName, _newAttributeName); - current = new MdRandomMutation(_blockName, _attributeName); + current = new NoneRandomMutation(_blockName, _attributeName); attributeNameChange = true; } public MdRandomMutation(String _blockName, String _name, int _nameType) { super(_blockName, _name, _nameType); - current = new MdRandomMutation(_blockName, _name, _nameType); + current = new NoneRandomMutation(_blockName, _name, _nameType); } public MdRandomMutation(String _blockName, String _name, int _nameType, String _newAttributeName) { super(_blockName, _newAttributeName); - current = new MdRandomMutation(_blockName, _name, _nameType); + current = new NoneRandomMutation(_blockName, _name, _nameType); attributeNameChange = true; } diff --git a/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java b/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java index 0a7002d576..663e3ded4b 100644 --- a/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java @@ -39,6 +39,7 @@ package avatartranslator.mutation; import avatartranslator.*; +//import myutil.TraceManager; /** * Class MdSetTimerMutation @@ -76,8 +77,9 @@ public class MdSetTimerMutation extends SetTimerMutation implements MdMutation { } private void setNewTimerValue(String _newTimerValue) { + //TraceManager.addDev("setNewTimerValue"); newTimerValue = _newTimerValue; - newTimerNameSet = true; + newTimerValueSet = true; } private void setNewTimer(String _newTimerName, String _newTimerValue) { @@ -88,8 +90,13 @@ public class MdSetTimerMutation extends SetTimerMutation implements MdMutation { public void apply(AvatarSpecification _avspec) { AvatarSetTimer elt = getElement(_avspec); - AvatarAttribute newTimer = getAttribute(_avspec, newTimerName); - if (newTimerNameSet) elt.setTimer(newTimer); + //TraceManager.addDev(elt.toString()); + if (newTimerNameSet) { + AvatarAttribute newTimer = getAttribute(_avspec, newTimerName); + elt.setTimer(newTimer); + } + //TraceManager.addDev(String.valueOf(newTimerValueSet)); + //TraceManager.addDev(String.valueOf(newTimerValue)); if (newTimerValueSet) elt.setTimerValue(newTimerValue); } } diff --git a/src/main/java/avatartranslator/mutation/RelationMutation.java b/src/main/java/avatartranslator/mutation/RelationMutation.java index 6878c039ff..f5017a6afa 100644 --- a/src/main/java/avatartranslator/mutation/RelationMutation.java +++ b/src/main/java/avatartranslator/mutation/RelationMutation.java @@ -57,6 +57,10 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed super(); setBlocks(_block1, _block2); } + protected RelationMutation(String _block1, String _block2, String _name) { + this(_block1, _block2); + setName(_name, NAME_TYPE); + } protected RelationMutation(String _relationString, int _relationType) { super(); diff --git a/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java b/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java index 7dc7f4ee50..d13c5e6849 100644 --- a/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java @@ -53,7 +53,7 @@ public class RmResetTimerMutation extends ResetTimerMutation implements RmMutati super(_blockName, _timerName); } - public RmResetTimerMutation(String _blockName, String _name, int _nameType, String _timerName) { + public RmResetTimerMutation(String _blockName, String _timerName, String _name, int _nameType) { super(_blockName, _name, _nameType, _timerName); } diff --git a/src/main/java/avatartranslator/mutation/SwapActionMutation.java b/src/main/java/avatartranslator/mutation/SwapActionMutation.java index 8587b9ea14..9b92dc6390 100644 --- a/src/main/java/avatartranslator/mutation/SwapActionMutation.java +++ b/src/main/java/avatartranslator/mutation/SwapActionMutation.java @@ -76,8 +76,8 @@ public class SwapActionMutation extends ActionMutation implements MdMutation { AvatarAction action1 = actions.get(minIndex); AvatarAction action2 = actions.get(maxIndex); - actions.remove(minIndex); actions.remove(maxIndex); + actions.remove(minIndex); actions.add(minIndex, action2); actions.add(maxIndex, action1); diff --git a/src/main/java/avatartranslator/mutation/TransitionMutation.java b/src/main/java/avatartranslator/mutation/TransitionMutation.java index 7c41f77e2a..39a365cd2c 100644 --- a/src/main/java/avatartranslator/mutation/TransitionMutation.java +++ b/src/main/java/avatartranslator/mutation/TransitionMutation.java @@ -62,23 +62,21 @@ public abstract class TransitionMutation extends UnnamedStateMachineElementMutat } protected TransitionMutation(String _blockName, String _transitionString, int _transitionType) { - super(_blockName); - setTransition(_transitionString, _transitionType); + super(_blockName, _transitionString, _transitionType); initActions(); } protected TransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _transitionString, int _transitionType) { - this(_blockName, _fromString, _fromType, _toString, _toType); - setTransition(_transitionString, _transitionType); + this(_blockName, _transitionString, _transitionType); + setFrom(_fromString, _fromType); + setTo(_toString, _toType); } private String fromString; private String toString; - private String transitionString; private int fromType = UNDEFINED_TYPE; private int toType = UNDEFINED_TYPE; - private int transitionType = UNDEFINED_TYPE; private double probability; private boolean probabilitySet = false; @@ -129,7 +127,7 @@ public abstract class TransitionMutation extends UnnamedStateMachineElementMutat private void setTo(String _toString, int _toType) { setTo(_toString); - fromType = _toType; + toType = _toType; } protected String getTo() { @@ -146,24 +144,6 @@ public abstract class TransitionMutation extends UnnamedStateMachineElementMutat return toType!=UNDEFINED_TYPE; } - private void setTransition(String _transitionString) { - transitionString = _transitionString; - } - - private void setTransition(String _transitionString, int _transitionType) { - setTransition(_transitionString); - transitionType = _transitionType; - } - - protected String getTransition() { - if (transitionType == UNDEFINED_TYPE) return "undefined"; - return transitionString; - } - - protected boolean isTransitionSet() { - return transitionType != UNDEFINED_TYPE; - } - public void setProbability(double _probability) { probability = _probability; probabilitySet = true; @@ -303,8 +283,8 @@ public abstract class TransitionMutation extends UnnamedStateMachineElementMutat } public AvatarTransition getElement(AvatarSpecification _avspec) { - //TraceManager.addDev(String.valueOf(nameType)); - if (transitionType == UNDEFINED_TYPE) { + //TraceManager.addDev(String.valueOf(isNameSet())); + if (!isNameSet()) { AvatarStateMachineElement fromElement = getElement(_avspec, fromType, fromString); //TraceManager.addDev(fromElement.toString()); AvatarStateMachineElement toElement = getElement(_avspec, toType, toString); @@ -354,7 +334,9 @@ public abstract class TransitionMutation extends UnnamedStateMachineElementMutat } return null; } - AvatarStateMachineElement element = getElement(_avspec, transitionType, transitionString); + //TraceManager.addDev("ping"); + AvatarStateMachineElement element = getElement(_avspec, getNameType(), getName()); + //TraceManager.addDev(element.toString()); if (element != null && element instanceof AvatarTransition) return (AvatarTransition)element; return null; } diff --git a/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java b/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java index 942fe4c8c8..221676d667 100644 --- a/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java +++ b/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java @@ -39,6 +39,7 @@ package avatartranslator.mutation; import avatartranslator.*; +//import myutil.TraceManager; import java.util.List; import java.util.UUID; @@ -57,6 +58,11 @@ public abstract class UnnamedStateMachineElementMutation extends StateMachineEle super(_blockName); } + protected UnnamedStateMachineElementMutation(String _blockName, String _name) { + super(_blockName); + setName(_name); + } + protected UnnamedStateMachineElementMutation(String _blockName, String _name, int _nameType) { super(_blockName); setName(_name, _nameType); @@ -65,6 +71,22 @@ public abstract class UnnamedStateMachineElementMutation extends StateMachineEle private String name = ""; private int nameType = UNDEFINED_TYPE; + protected boolean isUUID(String _name) { + try { + UUID.fromString(_name); + return true; + } catch (Exception e) { + return false; + } + } + + protected int UUIDType(String _name) { + if(isUUID(_name)) { + return UUID_TYPE; + } + return NAME_TYPE; + } + protected String getName() { return name; } @@ -79,6 +101,7 @@ public abstract class UnnamedStateMachineElementMutation extends StateMachineEle private void setName(String _name) { name = _name; + nameType = UUIDType(_name); } private void setName(String _name, int _nameType) { @@ -90,6 +113,7 @@ public abstract class UnnamedStateMachineElementMutation extends StateMachineEle AvatarStateMachine asm = getAvatarStateMachine(_avspec); List<AvatarStateMachineElement> elts = asm.getListOfElements(); for (AvatarStateMachineElement elt : elts) { + //TraceManager.addDev(elt.toString()); if (elt.getName().equals(_name)) return elt; } return null; diff --git a/ttool/src/test/java/avatartranslator/AvatarMutationTests.java b/ttool/src/test/java/avatartranslator/AvatarMutationTests.java index 8edc01b041..9c96972ff8 100644 --- a/ttool/src/test/java/avatartranslator/AvatarMutationTests.java +++ b/ttool/src/test/java/avatartranslator/AvatarMutationTests.java @@ -59,6 +59,9 @@ public class AvatarMutationTests { private AvatarSpecification as; private AvatarBlock block; + public static final int UNDEFINED_TYPE = -1; + public static final int NAME_TYPE = 0; + public static final int UUID_TYPE = 1; @Before public void test() { @@ -73,48 +76,42 @@ public class AvatarMutationTests { @Test public void testAddAttribute() { - AddAttributeMutation mutation = new AddAttributeMutation("y", "bool", "block"); - assertTrue(mutation.getType() == AvatarType.BOOLEAN); - assertTrue(mutation.getName().equals("y")); - assertTrue(mutation.getBlock(as) == block); - - AttributeMutation mutation2 = new AddAttributeMutation("z", "int", "block"); - mutation2.setInitialValue("5"); + AddAttributeMutation mutation = new AddAttributeMutation("block", "y", "bool"); + AttributeMutation mutation2 = new AddAttributeMutation("block", "z", "int", "5"); mutation.apply(as); mutation2.apply(as); assertTrue(block.getAttributes().size() == 3); AvatarAttribute attr1 = block.getAttribute(1); AvatarAttribute attr2 = block.getAttribute(2); + assertTrue(attr1.isBool()); + assertTrue(attr2.isInt()); assertTrue(attr2.getInitialValueInInt() == 5); } - @Test public void testRmAttribute() { - AttributeMutation mutation = new RmAttributeMutation("x", "block"); + AttributeMutation mutation = new RmAttributeMutation("block", "x"); mutation.apply(as); assertTrue(block.getAttributes().size() == 0); - AttributeMutation mutation2 = new RmAttributeMutation("x", "block"); + AttributeMutation mutation2 = new RmAttributeMutation("block", "x"); mutation.apply(as); } @Test public void testMdAttribute() { assertTrue(block.getAttribute(0).getInitialValue().equals("10")); - AttributeMutation mutation = new MdAttributeMutation("x", "42", "block"); + AttributeMutation mutation = new MdAttributeMutation("block", "x", "42"); mutation.apply(as); assertTrue(block.getAttribute(0).getInitialValue().equals("42")); } @Test public void testAddMethod() { - MethodMutation mutation = new AddMethodMutation("f", "block"); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; + MethodMutation mutation = new AddMethodMutation("block", "f"); mutation.addReturnParameter("int"); mutation.addReturnParameter("bool"); - mutation.addParameter(tmp); + mutation.addParameter("int", "x"); - MethodMutation mutation2 = new AddMethodMutation("g", "block", true); + MethodMutation mutation2 = new AddMethodMutation("block", "g", true); mutation2.addReturnParameter("int"); mutation.apply(as); @@ -122,8 +119,8 @@ public class AvatarMutationTests { assertTrue(block.getMethods().size() == 2); - AvatarMethod meth = block.getMethods().get(0); - AvatarMethod meth2 = block.getMethods().get(1); + AvatarMethod meth = mutation.getElement(as); + AvatarMethod meth2 = mutation2.getElement(as); assertTrue(meth.getName().equals("f")); TraceManager.addDev(meth.toString()); @@ -132,15 +129,14 @@ public class AvatarMutationTests { @Test public void testRmMethod() { - MethodMutation mutation = new AddMethodMutation("f", "block"); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; + MethodMutation mutation = new AddMethodMutation("block", "f"); mutation.addReturnParameter("int"); mutation.addReturnParameter("bool"); - mutation.addParameter(tmp); + mutation.addParameter("int", "x"); mutation.apply(as); + assertTrue(block.getMethods().size() == 1); - MethodMutation mutation2 = new RmMethodMutation("f", "block"); + MethodMutation mutation2 = new RmMethodMutation("block", "f"); mutation2.apply(as); @@ -149,15 +145,13 @@ public class AvatarMutationTests { @Test public void testMdMethod() { - MethodMutation mutation = new AddMethodMutation("f", "block"); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; + MethodMutation mutation = new AddMethodMutation("block", "f"); mutation.addReturnParameter("int"); mutation.addReturnParameter("bool"); - mutation.addParameter(tmp); + mutation.addParameter("int", "x"); mutation.apply(as); - MethodMutation mutation2 = new MdMethodMutation("f", "block", true); + MethodMutation mutation2 = new MdMethodMutation("block", "f", true); mutation2.apply(as); AvatarMethod meth = block.getMethods().get(0); @@ -166,9 +160,9 @@ public class AvatarMutationTests { assertTrue(meth.getListOfReturnAttributes().size() == 2); TraceManager.addDev(meth.toString()); - mutation2 = new MdMethodMutation("f", "block"); + mutation2 = new MdMethodMutation("block", "f"); mutation2.addReturnParameter("int"); - mutation2.addParameter(tmp2); + mutation2.addParameter("bool", "y"); mutation2.apply(as); meth = block.getMethods().get(0); @@ -178,18 +172,20 @@ public class AvatarMutationTests { TraceManager.addDev(meth.toString()); } - @Test - public void testAddSignal() { - SignalMutation mutation = new AddSignalMutation("cin", "block", SignalMutation.IN); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; - mutation.addParameter(tmp); - mutation.addParameter(tmp2); + public void addSignal() { + SignalMutation mutation = new AddSignalMutation("block", "cin", SignalMutation.IN); + mutation.addParameter("int", "x"); + mutation.addParameter("bool", "y"); - SignalMutation mutation2 = new AddSignalMutation("cout", "block", SignalMutation.OUT); + SignalMutation mutation2 = new AddSignalMutation("block", "cout", SignalMutation.OUT); mutation.apply(as); mutation2.apply(as); + } + + @Test + public void testAddSignal() { + addSignal(); assertTrue(block.getSignals().size() == 2); @@ -197,55 +193,28 @@ public class AvatarMutationTests { TraceManager.addDev(block.getSignals().get(1).toString()); } - public void addSignal() { - SignalMutation mutation = new AddSignalMutation("cin", "block", SignalMutation.IN); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; - mutation.addParameter(tmp); - mutation.addParameter(tmp2); - - SignalMutation mutation2 = new AddSignalMutation("cout", "block", SignalMutation.OUT); - - mutation.apply(as); - mutation2.apply(as); - } - @Test public void testRmSignal() { - SignalMutation mutation = new AddSignalMutation("cin", "block", SignalMutation.IN); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; - mutation.addParameter(tmp); - mutation.addParameter(tmp2); - mutation.apply(as); - - assertTrue(block.getSignals().size() == 1); + addSignal(); - SignalMutation mutation2 = new RmSignalMutation("cin", "block"); + SignalMutation mutation2 = new RmSignalMutation("block", "cin"); mutation2.apply(as); - assertTrue(block.getSignals().size() == 0); + assertTrue(block.getSignals().size() == 1); } @Test public void testMdSignal() { - SignalMutation mutation = new AddSignalMutation("cin", "block", SignalMutation.IN); - String[] tmp = {"int", "x"}; - String[] tmp2 = {"bool", "y"}; - mutation.addParameter(tmp); - mutation.addParameter(tmp2); - mutation.apply(as); - - assertTrue(block.getSignals().size() == 1); + addSignal(); - SignalMutation mutation2 = new MdSignalMutation("cin", "block", SignalMutation.OUT); + SignalMutation mutation2 = new MdSignalMutation("block", "cin", SignalMutation.OUT); mutation2.apply(as); assertTrue(block.getSignals().get(0).getInOut() == SignalMutation.OUT); - SignalMutation mutation3 = new MdSignalMutation("cin", "block"); - mutation3.addParameter(tmp); + SignalMutation mutation3 = new MdSignalMutation("block", "cin"); + mutation3.addParameter("int", "x"); mutation3.apply(as); assertTrue(block.getSignals().get(0).getListOfAttributes().size() == 1); @@ -254,14 +223,14 @@ public class AvatarMutationTests { @Test public void testAddState() { - StateMutation mutation = new AddStateMutation("state0", "block"); + StateMutation mutation = new AddStateMutation("block", "state0"); mutation.apply(as); assertTrue(block.getStateMachine().getNbOfStatesElement() == 1); } public void add2States() { testAddState(); - StateMutation mutation0 = new AddStateMutation("state1", "block"); + StateMutation mutation0 = new AddStateMutation("block", "state1"); mutation0.apply(as); } @@ -269,7 +238,7 @@ public class AvatarMutationTests { public void testRmState() { add2States(); assertTrue(block.getStateMachine().getNbOfStatesElement() == 2); - StateMutation mutation = new RmStateMutation("state0", "block"); + StateMutation mutation = new RmStateMutation("block", "state0"); mutation.apply(as); assertTrue(block.getStateMachine().getNbOfStatesElement() == 1); assertTrue(block.getStateMachine().getState(0).getName().equals("state1")); @@ -278,14 +247,9 @@ public class AvatarMutationTests { public AvatarTransition add2Trans() { add2States(); - TransitionMutation mutation0 = new AddTransitionMutation("block"); - mutation0.setFromWithName("state0"); - mutation0.setToWithName("state1"); + TransitionMutation mutation0 = new AddTransitionMutation("block", "state0", NAME_TYPE, "state1", NAME_TYPE); mutation0.apply(as); - TransitionMutation mutation = new AddTransitionMutation("block"); - mutation.setFromWithName("state0"); - mutation.setToWithName("state1"); - mutation.setName("trans"); + TransitionMutation mutation = new AddTransitionMutation("block", "state0", NAME_TYPE, "state1", NAME_TYPE, "trans"); mutation.setProbability(0.5); mutation.setGuard("x > 1"); mutation.setDelays("0", "5"); @@ -293,7 +257,10 @@ public class AvatarMutationTests { mutation.setComputes("12", "42"); mutation.addAction("x = 1"); mutation.apply(as); - return mutation.getElement(as); + TraceManager.addDev(block.getStateMachine().getState(0).toString()); + AvatarTransition trans = mutation.getElement(as); + TraceManager.addDev(trans.toString()); + return trans; } @Test @@ -315,11 +282,9 @@ public class AvatarMutationTests { @Test public void testAddTransition2() { - testAddActionOnSignal(); + addActionOnSignal(); add2States(); - AddTransitionMutation mutation = new AddTransitionMutation("block"); - mutation.setFromWithName("state0"); - mutation.setToWithName("aaos"); + AddTransitionMutation mutation = new AddTransitionMutation("block", "state0", NAME_TYPE, "aaos", NAME_TYPE); mutation.apply(as); AvatarTransition trans = mutation.getElement(as); TraceManager.addDev(trans.toString()); @@ -329,13 +294,10 @@ public class AvatarMutationTests { public void testRmTransition() { add2Trans(); //TraceManager.addDev(block.getStateMachine().getState(0).toString()); - TransitionMutation mutation = new RmTransitionMutation("block"); - mutation.setName("trans"); + TransitionMutation mutation = new RmTransitionMutation("block", "trans", NAME_TYPE); mutation.apply(as); assertTrue(block.getStateMachine().getState(0).getNexts().size()==1); - mutation = new RmTransitionMutation("block"); - mutation.setFromWithName("state0"); - mutation.setToWithName("state1"); + mutation = new RmTransitionMutation("block", "state0", NAME_TYPE, "state1", NAME_TYPE); //TraceManager.addDev(block.getStateMachine().getState(0).toString()); mutation.apply(as); //TraceManager.addDev(block.getStateMachine().getState(0).toString()); @@ -345,11 +307,9 @@ public class AvatarMutationTests { @Test public void testMdTransition() { add2Trans(); - MdTransitionMutation mutation = new MdTransitionMutation("block"); + MdTransitionMutation mutation = new MdTransitionMutation("block", "state0", NAME_TYPE, "state1", NAME_TYPE); mutation.setCurrentNoActions(); mutation.addAction("x = x + 2"); - mutation.setCurrentFromWithName("state0"); - mutation.setCurrentToWithName("state1"); AvatarTransition trans = mutation.getElement(as); assertTrue(trans.getNbOfAction() == 0); mutation.apply(as); @@ -357,24 +317,23 @@ public class AvatarMutationTests { TraceManager.addDev(trans.toString()); } - public void AddActionOnSignal() { + public void addActionOnSignal() { addSignal(); - AddActionOnSignalMutation mutation = new AddActionOnSignalMutation("cin", "block"); - mutation.setName("aaos"); + AddActionOnSignalMutation mutation = new AddActionOnSignalMutation("block", "cin", "aaos"); mutation.apply(as); } @Test public void testAddActionOnSignal() { - AddActionOnSignal(); + addActionOnSignal(); AvatarStateMachine asm = block.getStateMachine(); assertTrue(asm.isSignalUsed(block.getSignalByName("cin"))); } @Test public void testRmActionOnSignal1() { - AddActionOnSignal(); - RmActionOnSignalMutation mutation = new RmActionOnSignalMutation("cin", "block"); + addActionOnSignal(); + RmActionOnSignalMutation mutation = new RmActionOnSignalMutation("block", "cin"); mutation.apply(as); AvatarStateMachine asm = block.getStateMachine(); assertFalse(asm.isSignalUsed(block.getSignalByName("cin"))); @@ -382,9 +341,8 @@ public class AvatarMutationTests { @Test public void testRmActionOnSignal2() { - AddActionOnSignal(); - RmActionOnSignalMutation mutation = new RmActionOnSignalMutation("", "block"); - mutation.setName("aaos"); + addActionOnSignal(); + RmActionOnSignalMutation mutation = new RmActionOnSignalMutation("block", "aaos", NAME_TYPE); mutation.apply(as); AvatarStateMachine asm = block.getStateMachine(); assertFalse(asm.isSignalUsed(block.getSignalByName("cin"))); @@ -393,10 +351,8 @@ public class AvatarMutationTests { @Test public void testMdActionOnSignal() { AvatarStateMachine asm = block.getStateMachine(); - AddActionOnSignal(); - MdActionOnSignalMutation mutation = new MdActionOnSignalMutation("cout", "block"); - mutation.setName("aaos"); - mutation.setCurrentSignalName("cin"); + addActionOnSignal(); + MdActionOnSignalMutation mutation = new MdActionOnSignalMutation("block", "aaos", NAME_TYPE, "cout"); assertFalse(asm.isSignalUsed(block.getSignalByName("cout"))); mutation.apply(as); assertFalse(asm.isSignalUsed(block.getSignalByName("cin"))); @@ -404,8 +360,7 @@ public class AvatarMutationTests { } public AvatarRandom addRandom() { - AddRandomMutation mutation = new AddRandomMutation("x", "block"); - mutation.setName("rand"); + AddRandomMutation mutation = new AddRandomMutation("block", "x", "rand"); mutation.setValues("5", "15"); mutation.apply(as); return mutation.getElement(as); @@ -420,11 +375,11 @@ public class AvatarMutationTests { @Test public void testRmRandom() { - AddRandomMutation mutation0 = new AddRandomMutation("x", "block"); + AddRandomMutation mutation0 = new AddRandomMutation("block", "x"); mutation0.setValues("-5", "10"); mutation0.apply(as); addRandom(); - RmRandomMutation mutation = new RmRandomMutation("x", "block"); + RmRandomMutation mutation = new RmRandomMutation("block", "x"); mutation.setValues("5", "10"); mutation.apply(as); assertTrue(mutation0.getElement(as) != null); @@ -433,8 +388,7 @@ public class AvatarMutationTests { @Test public void testMdRandom() { AvatarRandom rand = addRandom(); - MdRandomMutation mutation = new MdRandomMutation("y", "block"); - mutation.setCurrentVariable("x"); + MdRandomMutation mutation = new MdRandomMutation("block", "x", "y"); mutation.apply(as); assertTrue(rand.getVariable().equals("y")); } @@ -442,7 +396,7 @@ public class AvatarMutationTests { public AvatarSetTimer addSetTimer() { AvatarAttribute timer = new AvatarAttribute("timer", AvatarType.TIMER, block, null); block.addAttribute(timer); - AddSetTimerMutation mutation = new AddSetTimerMutation("timer", "10", "block"); + AddSetTimerMutation mutation = new AddSetTimerMutation("block", "timer", "10"); mutation.apply(as); return mutation.getElement(as); } @@ -457,7 +411,8 @@ public class AvatarMutationTests { @Test public void testRmSetTimer() { addSetTimer(); - RmSetTimerMutation mutation = new RmSetTimerMutation("timer", "block"); + RmSetTimerMutation mutation = new RmSetTimerMutation("block", "timer", "10"); + TraceManager.addDev(mutation.getElement(as).toString()); assertFalse(mutation.getElement(as) == null); mutation.apply(as); assertTrue(mutation.getElement(as) == null); @@ -466,16 +421,16 @@ public class AvatarMutationTests { @Test public void testMdSetTimer() { AvatarSetTimer timer = addSetTimer(); - MdSetTimerMutation mutation = new MdSetTimerMutation("timer", "block"); - mutation.setTimerValue("15"); + MdSetTimerMutation mutation = new MdSetTimerMutation("block", "timer", "10", "15"); mutation.apply(as); + TraceManager.addDev(timer.getTimerValue()); assertTrue(timer.getTimerValue().equals("15")); } public AvatarResetTimer addResetTimer() { AvatarAttribute timer = new AvatarAttribute("timer", AvatarType.TIMER, block, null); block.addAttribute(timer); - AddResetTimerMutation mutation = new AddResetTimerMutation("timer", "block"); + AddResetTimerMutation mutation = new AddResetTimerMutation("block", "timer"); mutation.apply(as); return mutation.getElement(as); } @@ -490,7 +445,7 @@ public class AvatarMutationTests { @Test public void testRmResetTimer() { addResetTimer(); - RmResetTimerMutation mutation = new RmResetTimerMutation("timer", "block"); + RmResetTimerMutation mutation = new RmResetTimerMutation("block", "timer"); assertFalse(mutation.getElement(as) == null); mutation.apply(as); assertTrue(mutation.getElement(as) == null); @@ -501,7 +456,7 @@ public class AvatarMutationTests { AvatarResetTimer timer = addResetTimer(); AvatarAttribute timer2 = new AvatarAttribute("timer2", AvatarType.TIMER, block, null); block.addAttribute(timer2); - MdResetTimerMutation mutation = new MdResetTimerMutation("timer", "timer2", "block"); + MdResetTimerMutation mutation = new MdResetTimerMutation("block", "timer", "timer2"); mutation.apply(as); assertTrue(timer.getTimer().getName().equals("timer2")); } @@ -509,7 +464,7 @@ public class AvatarMutationTests { public AvatarExpireTimer addExpireTimer() { AvatarAttribute timer = new AvatarAttribute("timer", AvatarType.TIMER, block, null); block.addAttribute(timer); - AddExpireTimerMutation mutation = new AddExpireTimerMutation("timer", "block"); + AddExpireTimerMutation mutation = new AddExpireTimerMutation("block", "timer"); mutation.apply(as); return mutation.getElement(as); } @@ -524,7 +479,7 @@ public class AvatarMutationTests { @Test public void testRmExpireTimer() { addExpireTimer(); - RmExpireTimerMutation mutation = new RmExpireTimerMutation("timer", "block"); + RmExpireTimerMutation mutation = new RmExpireTimerMutation("block", "timer"); assertFalse(mutation.getElement(as) == null); mutation.apply(as); assertTrue(mutation.getElement(as) == null); @@ -535,8 +490,146 @@ public class AvatarMutationTests { AvatarExpireTimer timer = addExpireTimer(); AvatarAttribute timer2 = new AvatarAttribute("timer2", AvatarType.TIMER, block, null); block.addAttribute(timer2); - MdExpireTimerMutation mutation = new MdExpireTimerMutation("timer", "timer2", "block"); + MdExpireTimerMutation mutation = new MdExpireTimerMutation("block", "timer", "timer2"); mutation.apply(as); assertTrue(timer.getTimer().getName().equals("timer2")); } + + public AvatarBlock addBlock() { + AddBlockMutation mutation = new AddBlockMutation("block0"); + mutation.apply(as); + return mutation.getElement(as); + } + + @Test + public void testAddBlock() { + AvatarBlock block0 = addBlock(); + assertTrue(block0 != null); + assertTrue(block0.getName().equals("block0")); + } + + @Test + public void testRmBlock() { + addBlock(); + assertTrue(as.getListOfBlocks().size() == 2); + RmBlockMutation mutation = new RmBlockMutation("block0"); + mutation.apply(as); + assertTrue(as.getListOfBlocks().size() == 1); + } + + public void attachParent() { + addBlock(); + AttachParentMutation mutation = new AttachParentMutation("block0", "block"); + mutation.apply(as); + } + + @Test + public void testAttachParent() { + attachParent(); + assertTrue(block.getFather().getName().equals("block0")); + } + + @Test + public void testDetachParent() { + attachParent(); + DetachParentMutation mutation = new DetachParentMutation("block"); + mutation.apply(as); + assertTrue(block.getFather() == null); + } + + public AvatarRelation addRelation() { + addBlock(); + AddRelationMutation mutation = new AddRelationMutation("block", "block0", "relation"); + mutation.apply(as); + return mutation.getElement(as); + } + + @Test + public void testAddRelation() { + assertTrue(as.getRelations().size() == 0); + addRelation(); + assertTrue(as.getRelations().size() == 1); + } + + @Test + public void testRmRelation() { + addRelation(); + RmRelationMutation mutation = new RmRelationMutation("block", "block0"); + mutation.apply(as); + assertTrue(as.getRelations().size() == 0); + } + + @Test + public void testMdRelation() { + AvatarRelation relation = addRelation(); + MdRelationMutation mutation = new MdRelationMutation("block", "block0"); + mutation.setAMS(true); + assertFalse(relation.isAMS()); + mutation.apply(as); + assertTrue(relation.isAMS()); + } + + public AvatarRelation addAssociation() { + AvatarRelation relation = addRelation(); + addSignal(); + SignalMutation mutation0 = new AddSignalMutation("block0", "cin0", SignalMutation.IN); + mutation0.apply(as); + RelationMutation mutation = new AddAssociationMutation("block", "block0", "cout", "cin0"); + mutation.apply(as); + return relation; + } + + @Test + public void testAddAssociation() { + AvatarRelation relation = addAssociation(); + assertTrue(relation.nbOfSignals() == 1); + } + + @Test + public void testRmAssociation() { + AvatarRelation relation = addAssociation(); + RelationMutation mutation = new RmAssociationMutation("block", "block0", "cout", "cin0"); + mutation.apply(as); + assertTrue(relation.nbOfSignals() == 0); + } + + public AvatarTransition add2Actions() { + AvatarTransition trans = add2Trans(); + ActionMutation mutation = new AddActionMutation("block", "trans", NAME_TYPE, "x = x + 2"); + mutation.apply(as); + return trans; + } + + @Test + public void testAddAction() { + AvatarTransition trans = add2Actions(); + assertTrue(trans.getNbOfAction() == 2); + TraceManager.addDev(trans.toString()); + } + + @Test + public void testRmAction() { + AvatarTransition trans = add2Actions(); + ActionMutation mutation = new RmActionMutation("block", "trans", NAME_TYPE, 1); + mutation.apply(as); + assertTrue(trans.getNbOfAction() == 1); + TraceManager.addDev(trans.toString()); + } + + @Test + public void testMdAction() { + AvatarTransition trans = add2Actions(); + ActionMutation mutation = new MdActionMutation("block", "trans", NAME_TYPE, "x = -3", 0); + mutation.apply(as); + TraceManager.addDev(trans.toString()); + } + + @Test + public void testSwapAction() { + AvatarTransition trans = add2Actions(); + ActionMutation mutation = new SwapActionMutation("block", "trans", NAME_TYPE, 1, 0); + mutation.apply(as); + TraceManager.addDev(trans.toString()); + } + } \ No newline at end of file -- GitLab