Ignore:
Timestamp:
03/05/15 11:37:37 (9 years ago)
Author:
pharms
Message:
  • extended and corrected task comparison
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality/SequenceComparisonRule.java

    r1294 r1887  
    147147        } 
    148148 
    149         TaskEquality resultingEquality = TaskEquality.LEXICALLY_EQUAL; 
     149        TaskEquality resultingEquality = requiredEqualityLevel != null ? 
     150            requiredEqualityLevel : TaskEquality.LEXICALLY_EQUAL; 
     151         
    150152        for (int i = 0; i < children1.size(); i++) { 
    151153            ITask child1 = children1.get(i); 
    152154            ITask child2 = children2.get(i); 
    153155 
    154             TaskEquality taskEquality = callRuleManager(child1, child2, requiredEqualityLevel); 
     156            // it is sufficient to check for the current at most achievable equality, i.e., 
     157            // the so far resulting equality 
     158            TaskEquality taskEquality = callRuleManager(child1, child2, resultingEquality); 
    155159 
    156160            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL)) { 
     
    224228        } 
    225229 
    226         TaskEquality resultingEquality = TaskEquality.LEXICALLY_EQUAL; 
     230        TaskEquality resultingEquality = requiredEqualityLevel != null ? 
     231            requiredEqualityLevel : TaskEquality.LEXICALLY_EQUAL; 
     232         
    227233        for (int i = 0; i < sequence1.size(); i++) { 
    228234            ITaskInstance child1 = sequence1.get(i); 
    229235            ITaskInstance child2 = sequence2.get(i); 
    230236 
    231             TaskEquality taskEquality = callRuleManager(child1, child2, requiredEqualityLevel); 
     237            // it is sufficient to check for the current at most achievable equality, i.e., 
     238            // the so far resulting equality 
     239            TaskEquality taskEquality = callRuleManager(child1, child2, resultingEquality); 
    232240 
    233241            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL)) { 
Note: See TracChangeset for help on using the changeset viewer.