source: branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/taskequality/AbstractComparisonRuleTest.java @ 1735

Last change on this file since 1735 was 1294, checked in by pharms, 11 years ago
  • rework of task model to move event instance stuff to task instances
  • introduction of sequence, selection, iteration and optional instances
File size: 14.1 KB
Line 
1//   Copyright 2012 Georg-August-Universität Göttingen, Germany
2//
3//   Licensed under the Apache License, Version 2.0 (the "License");
4//   you may not use this file except in compliance with the License.
5//   You may obtain a copy of the License at
6//
7//       http://www.apache.org/licenses/LICENSE-2.0
8//
9//   Unless required by applicable law or agreed to in writing, software
10//   distributed under the License is distributed on an "AS IS" BASIS,
11//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//   See the License for the specific language governing permissions and
13//   limitations under the License.
14
15package de.ugoe.cs.autoquest.tasktrees.taskequality;
16
17import static org.junit.Assert.assertEquals;
18import static org.junit.Assert.assertFalse;
19import static org.junit.Assert.assertNull;
20import static org.junit.Assert.assertTrue;
21import de.ugoe.cs.autoquest.eventcore.Event;
22import de.ugoe.cs.autoquest.eventcore.IEventTarget;
23import de.ugoe.cs.autoquest.eventcore.IEventType;
24import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
25import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
26import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance;
27import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
28import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
29import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
30import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
31import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance;
32import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
33import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskBuilder;
34import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskFactory;
35import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskBuilder;
36import de.ugoe.cs.autoquest.tasktrees.treeimpl.TaskFactory;
37
38/**
39 * @author Patrick Harms
40 */
41public class AbstractComparisonRuleTest {
42
43    /** */
44    private ITaskFactory taskFactory = new TaskFactory();
45
46    /** */
47    private ITaskBuilder taskBuilder = new TaskBuilder();
48
49    /**
50     *
51     */
52    protected IEventTask createNewEventTask(IEventType eventType, IEventTarget eventTarget) {
53        IEventTask eventTask = taskFactory.createNewEventTask(eventType + " --> " + eventTarget);
54        taskFactory.createNewTaskInstance(eventTask, new Event(eventType, eventTarget));
55        return eventTask;
56    }
57
58    /**
59     *
60     */
61    protected ISequence createNewSequence() {
62        ISequence sequence = taskFactory.createNewSequence();
63        taskFactory.createNewTaskInstance(sequence);
64        return sequence;
65    }
66
67    /**
68     *
69     */
70    protected ISelection createNewSelection() {
71        ISelection selection = taskFactory.createNewSelection();
72        taskFactory.createNewTaskInstance(selection);
73        return selection;
74    }
75
76    /**
77     *
78     */
79    protected IOptional createNewOptional() {
80        IOptional optional = taskFactory.createNewOptional();
81        taskFactory.createNewTaskInstance(optional);
82        return optional;
83    }
84
85    /**
86     *
87     */
88    protected IIteration createNewIteration() {
89        IIteration iteration = taskFactory.createNewIteration();
90        taskFactory.createNewTaskInstance(iteration);
91        return iteration;
92    }
93   
94    /**
95     *
96     */
97    protected void setMarkedTask(IIteration iteration, ITask task) {
98        taskBuilder.setMarkedTask(iteration, task);
99        taskBuilder.addChild((IIterationInstance) iteration.getInstances().iterator().next(),
100                             task.getInstances().iterator().next());
101    }
102
103    /**
104     *
105     */
106    protected void addChild(ISelection selection, ITask task) {
107        taskBuilder.addChild(selection, task);
108        taskBuilder.setChild((ISelectionInstance) selection.getInstances().iterator().next(),
109                             task.getInstances().iterator().next());
110    }
111
112    /**
113     *
114     */
115    protected void addChild(ISequence sequence, ITask task) {
116        taskBuilder.addChild(sequence, task);
117        taskBuilder.addChild((ISequenceInstance) sequence.getInstances().iterator().next(),
118                             task.getInstances().iterator().next());
119    }
120
121    /**
122     *
123     */
124    protected void assertLexicallyEqual(TaskComparisonRule rule, ITask task1, ITask task2) {
125        assertEquals(TaskEquality.LEXICALLY_EQUAL, rule.compare(task1, task2));
126        assertTrue(rule.areLexicallyEqual(task1, task2));
127        assertTrue(rule.areSyntacticallyEqual(task1, task2));
128        assertTrue(rule.areSemanticallyEqual(task1, task2));
129
130        assertEquals(TaskEquality.LEXICALLY_EQUAL, rule.compare(task2, task1));
131        assertTrue(rule.areLexicallyEqual(task2, task1));
132        assertTrue(rule.areSyntacticallyEqual(task2, task1));
133        assertTrue(rule.areSemanticallyEqual(task2, task1));
134       
135        assertEquals(TaskEquality.LEXICALLY_EQUAL,
136                     rule.compare(task1.getInstances().iterator().next(),
137                                  task2.getInstances().iterator().next()));
138        assertTrue(rule.areLexicallyEqual(task1.getInstances().iterator().next(),
139                                          task2.getInstances().iterator().next()));
140        assertTrue(rule.areSyntacticallyEqual(task1.getInstances().iterator().next(),
141                                              task2.getInstances().iterator().next()));
142        assertTrue(rule.areSemanticallyEqual(task1.getInstances().iterator().next(),
143                                             task2.getInstances().iterator().next()));
144
145        assertEquals(TaskEquality.LEXICALLY_EQUAL,
146                     rule.compare(task2.getInstances().iterator().next(),
147                                  task1.getInstances().iterator().next()));
148        assertTrue(rule.areLexicallyEqual(task2.getInstances().iterator().next(),
149                                          task1.getInstances().iterator().next()));
150        assertTrue(rule.areSyntacticallyEqual(task2.getInstances().iterator().next(),
151                                              task1.getInstances().iterator().next()));
152        assertTrue(rule.areSemanticallyEqual(task2.getInstances().iterator().next(),
153                                             task1.getInstances().iterator().next()));
154    }
155
156    /**
157     *
158     */
159    protected void assertSyntacticallyEqual(TaskComparisonRule rule, ITask task1, ITask task2) {
160        assertEquals(TaskEquality.SYNTACTICALLY_EQUAL, rule.compare(task1, task2));
161        assertFalse(rule.areLexicallyEqual(task1, task2));
162        assertTrue(rule.areSyntacticallyEqual(task1, task2));
163        assertTrue(rule.areSemanticallyEqual(task1, task2));
164
165        assertEquals(TaskEquality.SYNTACTICALLY_EQUAL, rule.compare(task2, task1));
166        assertFalse(rule.areLexicallyEqual(task2, task1));
167        assertTrue(rule.areSyntacticallyEqual(task2, task1));
168        assertTrue(rule.areSemanticallyEqual(task2, task1));
169       
170        assertEquals(TaskEquality.SYNTACTICALLY_EQUAL,
171                     rule.compare(task1.getInstances().iterator().next(),
172                                  task2.getInstances().iterator().next()));
173        assertFalse(rule.areLexicallyEqual(task1.getInstances().iterator().next(),
174                                           task2.getInstances().iterator().next()));
175        assertTrue(rule.areSyntacticallyEqual(task1.getInstances().iterator().next(),
176                                              task2.getInstances().iterator().next()));
177        assertTrue(rule.areSemanticallyEqual(task1.getInstances().iterator().next(),
178                                             task2.getInstances().iterator().next()));
179
180        assertEquals(TaskEquality.SYNTACTICALLY_EQUAL,
181                     rule.compare(task2.getInstances().iterator().next(),
182                                  task1.getInstances().iterator().next()));
183        assertFalse(rule.areLexicallyEqual(task2.getInstances().iterator().next(),
184                                           task1.getInstances().iterator().next()));
185        assertTrue(rule.areSyntacticallyEqual(task2.getInstances().iterator().next(),
186                                              task1.getInstances().iterator().next()));
187        assertTrue(rule.areSemanticallyEqual(task2.getInstances().iterator().next(),
188                                             task1.getInstances().iterator().next()));
189    }
190
191    /**
192     *
193     */
194    protected void assertSemanticallyEqual(TaskComparisonRule rule, ITask task1, ITask task2) {
195        assertEquals(TaskEquality.SEMANTICALLY_EQUAL, rule.compare(task1, task2));
196        assertFalse(rule.areLexicallyEqual(task1, task2));
197        assertFalse(rule.areSyntacticallyEqual(task1, task2));
198        assertTrue(rule.areSemanticallyEqual(task1, task2));
199
200        assertEquals(TaskEquality.SEMANTICALLY_EQUAL, rule.compare(task2, task1));
201        assertFalse(rule.areLexicallyEqual(task2, task1));
202        assertFalse(rule.areSyntacticallyEqual(task2, task1));
203        assertTrue(rule.areSemanticallyEqual(task2, task1));
204       
205        assertEquals(TaskEquality.SEMANTICALLY_EQUAL,
206                     rule.compare(task1.getInstances().iterator().next(),
207                                  task2.getInstances().iterator().next()));
208        assertFalse(rule.areLexicallyEqual(task1.getInstances().iterator().next(),
209                                           task2.getInstances().iterator().next()));
210        assertFalse(rule.areSyntacticallyEqual(task1.getInstances().iterator().next(),
211                                               task2.getInstances().iterator().next()));
212        assertTrue(rule.areSemanticallyEqual(task1.getInstances().iterator().next(),
213                                             task2.getInstances().iterator().next()));
214
215        assertEquals(TaskEquality.SEMANTICALLY_EQUAL,
216                     rule.compare(task2.getInstances().iterator().next(),
217                                  task1.getInstances().iterator().next()));
218        assertFalse(rule.areLexicallyEqual(task2.getInstances().iterator().next(),
219                                           task1.getInstances().iterator().next()));
220        assertFalse(rule.areSyntacticallyEqual(task2.getInstances().iterator().next(),
221                                               task1.getInstances().iterator().next()));
222        assertTrue(rule.areSemanticallyEqual(task2.getInstances().iterator().next(),
223                                             task1.getInstances().iterator().next()));
224    }
225
226    /**
227     *
228     */
229    protected void assertUnequal(TaskComparisonRule rule, ITask task1, ITask task2) {
230        assertEquals(TaskEquality.UNEQUAL, rule.compare(task1, task2));
231        assertFalse(rule.areLexicallyEqual(task1, task2));
232        assertFalse(rule.areSyntacticallyEqual(task1, task2));
233        assertFalse(rule.areSemanticallyEqual(task1, task2));
234
235        assertEquals(TaskEquality.UNEQUAL, rule.compare(task2, task1));
236        assertFalse(rule.areLexicallyEqual(task2, task1));
237        assertFalse(rule.areSyntacticallyEqual(task2, task1));
238        assertFalse(rule.areSemanticallyEqual(task2, task1));
239       
240        assertEquals(TaskEquality.UNEQUAL,
241                     rule.compare(task1.getInstances().iterator().next(),
242                                  task2.getInstances().iterator().next()));
243        assertFalse(rule.areLexicallyEqual(task1.getInstances().iterator().next(),
244                                           task2.getInstances().iterator().next()));
245        assertFalse(rule.areSyntacticallyEqual(task1.getInstances().iterator().next(),
246                                               task2.getInstances().iterator().next()));
247        assertFalse(rule.areSemanticallyEqual(task1.getInstances().iterator().next(),
248                                              task2.getInstances().iterator().next()));
249
250        assertEquals(TaskEquality.UNEQUAL,
251                     rule.compare(task2.getInstances().iterator().next(),
252                                  task1.getInstances().iterator().next()));
253        assertFalse(rule.areLexicallyEqual(task2.getInstances().iterator().next(),
254                                           task1.getInstances().iterator().next()));
255        assertFalse(rule.areSyntacticallyEqual(task2.getInstances().iterator().next(),
256                                               task1.getInstances().iterator().next()));
257        assertFalse(rule.areSemanticallyEqual(task2.getInstances().iterator().next(),
258                                              task1.getInstances().iterator().next()));
259    }
260
261    /**
262     *
263     */
264    protected void assertNullEquality(TaskComparisonRule rule, ITask task1, ITask task2) {
265        assertNull(rule.compare(task1, task2));
266        assertFalse(rule.areLexicallyEqual(task1, task2));
267        assertFalse(rule.areSyntacticallyEqual(task1, task2));
268        assertFalse(rule.areSemanticallyEqual(task1, task2));
269
270        assertNull(rule.compare(task2, task1));
271        assertFalse(rule.areLexicallyEqual(task2, task1));
272        assertFalse(rule.areSyntacticallyEqual(task2, task1));
273        assertFalse(rule.areSemanticallyEqual(task2, task1));
274       
275        assertNull(rule.compare(task1.getInstances().iterator().next(),
276                                task2.getInstances().iterator().next()));
277        assertFalse(rule.areLexicallyEqual(task1.getInstances().iterator().next(),
278                                           task2.getInstances().iterator().next()));
279        assertFalse(rule.areSyntacticallyEqual(task1.getInstances().iterator().next(),
280                                               task2.getInstances().iterator().next()));
281        assertFalse(rule.areSemanticallyEqual(task1.getInstances().iterator().next(),
282                                              task2.getInstances().iterator().next()));
283
284        assertNull(rule.compare(task2.getInstances().iterator().next(),
285                                task1.getInstances().iterator().next()));
286        assertFalse(rule.areLexicallyEqual(task2.getInstances().iterator().next(),
287                                           task1.getInstances().iterator().next()));
288        assertFalse(rule.areSyntacticallyEqual(task2.getInstances().iterator().next(),
289                                               task1.getInstances().iterator().next()));
290        assertFalse(rule.areSemanticallyEqual(task2.getInstances().iterator().next(),
291                                              task1.getInstances().iterator().next()));
292    }
293}
Note: See TracBrowser for help on using the repository browser.