Changeset 1918 for trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/TaskTreeTestRule.java
- Timestamp:
- 03/12/15 15:50:28 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/TaskTreeTestRule.java
r1493 r1918 15 15 package de.ugoe.cs.autoquest.usability; 16 16 17 import java.util.ArrayList; 18 import java.util.HashSet; 19 import java.util.List; 20 import java.util.Set; 21 17 22 import de.ugoe.cs.autoquest.eventcore.Event; 18 23 import de.ugoe.cs.autoquest.tasktrees.treeifc.DefaultTaskInstanceTraversingVisitor; 24 import de.ugoe.cs.autoquest.tasktrees.treeifc.DefaultTaskTraversingVisitor; 25 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask; 19 26 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance; 27 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection; 28 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence; 29 import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship; 30 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask; 31 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInfo; 20 32 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance; 21 33 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstanceVisitor; … … 41 53 42 54 checkTimestamps(taskModel); 55 checkTaskInfos(taskModel); 56 checkEventTaskInstances(taskModel); 57 checkTraversal(taskModel); 43 58 44 59 return results; 60 } 61 62 /** 63 * <p> 64 * TODO: comment 65 * </p> 66 * 67 * @param taskModel 68 */ 69 private void checkEventTaskInstances(ITaskModel taskModel) { 70 Set<IEventTaskInstance> instancesInModel = new HashSet<>(); 71 72 for (ITask task : taskModel.getTasks()) { 73 if (task instanceof IEventTask) { 74 for (ITaskInstance instance : task.getInstances()) { 75 instancesInModel.add((IEventTaskInstance) instance); 76 } 77 } 78 } 79 80 final Set<IEventTaskInstance> instancesInSessions = new HashSet<>(); 81 82 for (IUserSession session : taskModel.getUserSessions()) { 83 for (ITaskInstance rootInstance : session) { 84 rootInstance.accept(new DefaultTaskInstanceTraversingVisitor() { 85 @Override 86 public void visit(IEventTaskInstance eventTaskInstance) { 87 instancesInSessions.add(eventTaskInstance); 88 } 89 }); 90 } 91 } 92 93 if (instancesInModel.size() != instancesInSessions.size()) { 94 throw new RuntimeException("instances not equal"); 95 } 96 else { 97 for (IEventTaskInstance instance : instancesInModel) { 98 if (!instancesInSessions.contains(instance)) { 99 throw new RuntimeException("instance of model not contained in sessions"); 100 } 101 } 102 103 for (IEventTaskInstance instance : instancesInSessions) { 104 if (!instancesInModel.contains(instance)) { 105 throw new RuntimeException("instance of sessions not contained in model"); 106 } 107 } 108 } 109 } 110 111 /** 112 * <p> 113 * TODO: comment 114 * </p> 115 * 116 * @param taskModel 117 */ 118 private void checkTraversal(ITaskModel taskModel) { 119 for (ITask task : taskModel.getTasks()) { 120 final List<ITask> traversal1 = new ArrayList<>(); 121 122 task.accept(new DefaultTaskTraversingVisitor() { 123 @Override 124 public void visit(IEventTask eventTask) { 125 traversal1.add(eventTask); 126 super.visit(eventTask); 127 } 128 129 @Override 130 public void visit(IStructuringTemporalRelationship relationship) { 131 traversal1.add(relationship); 132 super.visit(relationship); 133 } 134 135 }); 136 137 final List<ITask> traversal2 = new ArrayList<>(); 138 139 task.accept(new DefaultTaskTraversingVisitor() { 140 @Override 141 public void visit(IEventTask eventTask) { 142 traversal2.add(eventTask); 143 super.visit(eventTask); 144 } 145 146 @Override 147 public void visit(ISelection selection) { 148 traversal2.add(selection); 149 super.visit(selection); 150 } 151 152 @Override 153 public void visit(ISequence sequence) { 154 traversal2.add(sequence); 155 super.visit(sequence); 156 } 157 }); 158 159 if (traversal1.size() != traversal2.size()) { 160 throw new RuntimeException("traversals not equal"); 161 } 162 else { 163 for (int i = 0; i < traversal1.size(); i++) { 164 if (!traversal1.get(i).equals(traversal2.get(i))) { 165 throw new RuntimeException("traversals not equal at position " + i); 166 } 167 } 168 } 169 } 45 170 } 46 171 … … 78 203 79 204 } 205 206 /** 207 * <p> 208 * TODO: comment 209 * </p> 210 * 211 * @param taskModel 212 */ 213 private void checkTaskInfos(ITaskModel taskModel) { 214 for (ITask task : taskModel.getTasks()) { 215 ITaskInfo taskInfo = taskModel.getTaskInfo(task); 216 if (taskInfo == null) { 217 System.out.println("task " + task + " has no associated task infos"); 218 } 219 } 220 } 80 221 }
Note: See TracChangeset
for help on using the changeset viewer.