Changeset 1152 for trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java
- Timestamp:
- 04/08/13 16:50:21 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java
r1150 r1152 23 23 import com.google.common.collect.Iterables; 24 24 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel; 27 28 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller; 28 29 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver; … … 32 33 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult; 33 34 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy; 34 import de.ugoe.cs.autoquest.usability.tasktree.filters.Task TreeFilter;35 import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter; 35 36 36 37 /** … … 50 51 * @param taskTree 51 52 */ 52 public TextInputRatioMetric(ITask Tree taskTree) {53 super(task Tree);53 public TextInputRatioMetric(ITaskModel taskModel) { 54 super(taskModel); 54 55 this.name = "TextInputRatio"; 55 56 this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName()); … … 62 63 public Optional<UsabilityDefect> calculate() { 63 64 FilterResult textInputEvents = extractNodesFromTaskTree(); 64 float evaluationMetric = calculateEvaluationMetric(textInputEvents. nodesMatchedFilter(), textInputEvents.nodesNotMatchedFilter());65 float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter(), textInputEvents.tasksNotMatchedFilter()); 65 66 return this.defect.isPresent(evaluationMetric); 66 67 } 67 68 68 69 private FilterResult extractNodesFromTaskTree() { 69 return new Task TreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)70 .from(this.task Tree);70 return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT) 71 .from(this.taskModel); 71 72 } 72 73 73 private float calculateEvaluationMetric(List<ITask TreeNode> textInputEvents, List<ITaskTreeNode> nonTextInputEvents) {74 private float calculateEvaluationMetric(List<ITask> textInputEvents, List<ITask> nonTextInputEvents) { 74 75 float numberOfTextInputEvents = textInputEvents.size(); 75 float numberOfNonTextInputEvents = nrOfEvent NodesNotMatchedFilter(nonTextInputEvents);76 float numberOfNonTextInputEvents = nrOfEventTasksNotMatchedFilter(nonTextInputEvents); 76 77 return numberOfTextInputEvents / (numberOfTextInputEvents + numberOfNonTextInputEvents); 77 78 } 78 79 79 private int nrOfEvent NodesNotMatchedFilter(List<ITaskTreeNode> nonTextInputEvents) {80 private int nrOfEventTasksNotMatchedFilter(List<ITask> nonTextInputEvents) { 80 81 return Iterables.size(Iterables.filter(nonTextInputEvents, 81 new Predicate<ITask TreeNode>() {82 new Predicate<ITask>() { 82 83 83 84 @Override 84 public boolean apply(ITaskTreeNode node) { 85 return (node.getChildren() == null) || 86 (node.getChildren().size() == 0); 85 public boolean apply(ITask task) { 86 return task instanceof IEventTask; 87 87 } 88 88 }));
Note: See TracChangeset
for help on using the changeset viewer.