Changeset 2162 for trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/RequiredInefficientActionsRule.java
- Timestamp:
- 09/07/17 16:15:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/RequiredInefficientActionsRule.java
r1949 r2162 17 17 import java.util.Collection; 18 18 import java.util.HashMap; 19 import java.util.LinkedList; 20 import java.util.List; 19 21 import java.util.Map; 20 22 21 23 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; 22 24 23 import de.ugoe.cs.autoquest.eventcore.Event;24 import de.ugoe.cs.autoquest.eventcore.gui.Scroll;25 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.DefaultTaskInstanceTraversingVisitor; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.DefaultTaskTraversingVisitor; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 26 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance; 27 29 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; … … 90 92 for (ITask task : tasks) { 91 93 if (task instanceof ISequence) { 92 double[] ratios = getRatiosOfInefficientActionsInInstances((ISequence) task); 93 94 for (int i = 0; i < ratios.length; i++) { 95 if (ratios[i] > 0) { 96 // there is at least on inefficient action 97 inefficientActionRatios.put((ISequence) task, ratios); 98 break; 94 if (countEfficientActions((ISequence) task) > 1) { 95 double[] ratios = getRatiosOfInefficientActionsInInstances((ISequence) task); 96 97 for (int i = 0; i < ratios.length; i++) { 98 if (ratios[i] > 0) { 99 // there is at least on inefficient action 100 inefficientActionRatios.put((ISequence) task, ratios); 101 break; 102 } 99 103 } 100 104 } … … 103 107 104 108 return inefficientActionRatios; 109 } 110 111 /** 112 * 113 */ 114 private int countEfficientActions(ISequence task) { 115 final List<IEventTask> efficientActions = new LinkedList<>(); 116 117 task.accept(new DefaultTaskTraversingVisitor() { 118 @Override 119 public void visit(IEventTask eventTask) { 120 if (!ActionClassifier.isInefficient(eventTask)) { 121 efficientActions.add(eventTask); 122 } 123 } 124 }); 125 126 return efficientActions.size(); 105 127 } 106 128 … … 131 153 @Override 132 154 public void visit(IEventTaskInstance eventTaskInstance) { 133 if ( isInefficientAction(eventTaskInstance.getEvent())) {155 if (ActionClassifier.isInefficient(eventTaskInstance.getEvent())) { 134 156 count[0]++; 135 157 } … … 143 165 } 144 166 145 /**146 *147 */148 private boolean isInefficientAction(Event event) {149 return (event.getType() instanceof Scroll);150 }151 152 167 }
Note: See TracChangeset
for help on using the changeset viewer.