From 60bacf6a23c03e205cd8c986b73475295f2bc177 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Thu, 7 Apr 2022 17:37:53 +0200
Subject: [PATCH] Reversing to previous model-checker

---
 .../modelchecker/AvatarModelChecker.java      | 25 +++----------------
 .../test/java/cli/CLIDiploToAvatarTest.java   |  6 +++--
 2 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java b/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
index 04e22cf495..7f8406c86e 100644
--- a/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
+++ b/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
@@ -1184,8 +1184,7 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
 
             for (AvatarStateMachineElement elt : ase.getNexts()) {
                 if (elt instanceof AvatarTransition) {
-                    handleAvatarTransition((AvatarTransition) elt, block, sb, cpt, transitions,
-                            ase.getNexts().size() > 1);
+                    handleAvatarTransition((AvatarTransition) elt, block, sb, cpt, transitions, ase.getNexts().size() > 1);
                 }
             }
 
@@ -1224,10 +1223,9 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
             SpecificationTransition st = null;
             // See whether there is at least one transition with an immediate internal action with no alternative in the same block
             for (SpecificationTransition tr : transitions) {
-                if ((AvatarTransition.isActionType(tr.getType()) && (tr.clockMin == tr.clockMax) && (tr.clockMin == 0)) ||
-                        tr.getType() == AvatarTransition.TYPE_EMPTY) {
+                if ((AvatarTransition.isActionType(tr.getType()) && (tr.clockMin == tr.clockMax) && (tr.clockMin == 0)) || tr.getType() == AvatarTransition.TYPE_EMPTY) {
                     // Must look for possible transitions from the same state
-                    if (!(tr.fromStateWithMoreThanOneTransition) /*|| onlyOnetimeSameBlockTransition(tr, transitions)*/) {
+                    if (!(tr.fromStateWithMoreThanOneTransition)) {
                         st = tr;
                         if (ignoreInternalStates) { // New behavior
                             computeAllInternalStatesFrom(_ss, st);
@@ -1389,20 +1387,6 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
         mustStop();
     }
 
-    private boolean onlyOnetimeSameBlockTransition(SpecificationTransition st, ArrayList<SpecificationTransition> transitions ) {
-        
-        AvatarStateMachineOwner block = st.transitions[0].getBlock();
-        for(SpecificationTransition specTr: transitions) {
-            if (specTr != st) {
-                if (specTr.transitions[0].getBlock() == block) {
-                    //TraceManager.addDev("Return false in onlyOnetimeSameBlockTransition");
-                    return false;
-                }
-            }
-        }
-        //TraceManager.addDev("Return true in onlyOnetimeSameBlockTransition");
-        return true;
-    }
 
     private void computeAllInternalStatesFrom(SpecificationState _ss, SpecificationTransition st) {
         SpecificationState newState = _ss.advancedClone();
@@ -1702,8 +1686,7 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
         //return evaluateBoolExpression(s, _block, _sb);
     }
 
-    private void handleAvatarTransition(AvatarTransition _at, AvatarBlock _block, SpecificationBlock _sb, int _indexOfBlock,
-                                        ArrayList<SpecificationTransition> _transitionsToAdd, boolean _fromStateWithMoreThanOneTransition) {
+    private void handleAvatarTransition(AvatarTransition _at, AvatarBlock _block, SpecificationBlock _sb, int _indexOfBlock, ArrayList<SpecificationTransition> _transitionsToAdd, boolean _fromStateWithMoreThanOneTransition) {
         if (_at.type == AvatarTransition.UNDEFINED) {
             return;
         }
diff --git a/ttool/src/test/java/cli/CLIDiploToAvatarTest.java b/ttool/src/test/java/cli/CLIDiploToAvatarTest.java
index 2fd131f85d..25e9aee45f 100644
--- a/ttool/src/test/java/cli/CLIDiploToAvatarTest.java
+++ b/ttool/src/test/java/cli/CLIDiploToAvatarTest.java
@@ -63,9 +63,10 @@ public class CLIDiploToAvatarTest extends AbstractTest implements InterpreterOut
     private final static String PATH_TO_EXPECTED_FILE = "cli/expected/";
     private StringBuilder outputResult;
 
-    private final int[] statesInfo = {430, 102, 102};
+    private final int[] statesInfo = {5285, 350, 350};
+    private final int[] transitionsInfo = {13903, 649, 649};
+
     private final int[] statesMinimizeInfo = {63, 21, 21};
-    private final int[] transitionsInfo = {499, 111, 111};
     private final int[] transitionsMinimizeInfo = {132, 30, 30};
 
 	
@@ -123,6 +124,7 @@ public class CLIDiploToAvatarTest extends AbstractTest implements InterpreterOut
 
             System.out.println("i=" + i + "/ RG states=" + graph.getNbOfStates() + " transitions=" + graph.getNbOfTransitions());
 
+
             assertTrue(graph.getNbOfStates() == statesInfo[i]);
             assertTrue(graph.getNbOfTransitions() == transitionsInfo[i]);
 
-- 
GitLab