source: trunk/autoquest-core-coverage-test/src/test/java/de/ugoe/cs/autoquest/coverage/CoverageCalculatorProcessTest.java @ 922

Last change on this file since 922 was 922, checked in by sherbold, 12 years ago
  • renaming of packages from de.ugoe.cs.quest to de.ugoe.cs.autoquest
  • Property svn:mime-type set to text/plain
File size: 7.2 KB
Line 
1package de.ugoe.cs.autoquest.coverage;
2
3import java.util.ArrayList;
4import java.util.Collection;
5
6import java.util.LinkedHashSet;
7import java.util.LinkedList;
8import java.util.List;
9import java.util.Random;
10import java.util.Set;
11
12import de.ugoe.cs.autoquest.coverage.CoverageCalculatorProcess;
13import de.ugoe.cs.autoquest.eventcore.Event;
14import de.ugoe.cs.autoquest.eventcore.StringEventType;
15import de.ugoe.cs.autoquest.usageprofiles.MockTrieBasedModel;
16
17import org.junit.*;
18
19import static org.junit.Assert.*;
20
21/**
22 * The class <code>CoverageCalculatorProcessTest</code> contains tests for the
23 * class <code>{@link CoverageCalculatorProcess}</code>.
24 *
25 * @author Steffen Herbold
26 * @version 1.0
27 */
28public class CoverageCalculatorProcessTest {
29
30        Set<List<Event>> sequencesCovered;
31        Set<List<Event>> sequencesCovered2;
32        MockTrieBasedModel mockProcess;
33
34        @Test
35        public void testCoverageCalculatorProcess_1() throws Exception {
36                int length = 2;
37
38                CoverageCalculatorProcess result = new CoverageCalculatorProcess(
39                                mockProcess, sequencesCovered, length);
40                assertNotNull(result);
41        }
42
43        @Test(expected = java.lang.IllegalArgumentException.class)
44        public void testCoverageCalculatorProcess_2() throws Exception {
45                int length = 2;
46
47                new CoverageCalculatorProcess(null,sequencesCovered, length);
48        }
49
50        @Test(expected = java.lang.IllegalArgumentException.class)
51        public void testCoverageCalculatorProcess_3() throws Exception {
52                int length = 2;
53
54                new CoverageCalculatorProcess(mockProcess, null, length);
55        }
56
57        @Test(expected = java.lang.IllegalArgumentException.class)
58        public void testCoverageCalculatorProcess_4() throws Exception {
59                int length = 0;
60
61                new CoverageCalculatorProcess(mockProcess, sequencesCovered, length);
62        }
63
64        @Test(expected = java.lang.IllegalArgumentException.class)
65        public void testCoverageCalculatorProcess_5() throws Exception {
66                int length = -1;
67
68                new CoverageCalculatorProcess(mockProcess, sequencesCovered, length);
69        }
70
71        @Test
72        public void testGetCoverageAllNoWeight_1() throws Exception {
73                int length = 2;
74                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
75                                mockProcess, sequencesCovered, length);
76
77                double result = fixture.getCoverageAllNoWeight();
78
79                assertEquals(3.0 / 49.0, result, 0.0001);
80        }
81
82        @Test
83        public void testGetCoverageAllNoWeight_2() throws Exception {
84                int length = 2;
85                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
86                                mockProcess, sequencesCovered2, length);
87
88                double result = fixture.getCoverageAllNoWeight();
89
90                assertEquals(2.0 / 49.0, result, 0.0001);
91        }
92
93        @Test
94        public void testGetCoveragePossibleNoWeight_1() throws Exception {
95                int length = 2;
96                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
97                                mockProcess, sequencesCovered, length);
98
99                double result = fixture.getCoveragePossibleNoWeight();
100
101                assertEquals(3.0 / 9.0, result, 0.0001);
102        }
103
104        @Test
105        public void testGetCoveragePossibleNoWeight_2() throws Exception {
106                int length = 2;
107                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
108                                mockProcess, sequencesCovered2, length);
109
110                double result = fixture.getCoveragePossibleNoWeight();
111
112                assertEquals(2.0 / 9.0, result, 0.0001);
113        }
114
115        @Test
116        public void testGetCoveragePossibleWeight_1() throws Exception {
117                int length = 2;
118                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
119                                mockProcess, sequencesCovered, length);
120
121                double result = fixture.getCoveragePossibleWeight();
122
123                assertEquals(6.0, result, 0.0001);
124        }
125
126        @Test
127        public void testGetCoveragePossibleWeight_2() throws Exception {
128                int length = 2;
129                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
130                                mockProcess, sequencesCovered2, length);
131
132                double result = fixture.getCoveragePossibleWeight();
133
134                assertEquals(4.0, result, 0.0001);
135        }
136
137        @Test
138        public void testGetNumCovered_1() throws Exception {
139                int length = 2;
140                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
141                                mockProcess, sequencesCovered, length);
142
143                int result = fixture.getNumCovered();
144
145                assertEquals(3, result);
146        }
147
148        @Test
149        public void testGetNumCovered_2() throws Exception {
150                int length = 2;
151                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
152                                mockProcess, sequencesCovered2, length);
153
154                int result = fixture.getNumCovered();
155
156                assertEquals(2, result);
157        }
158
159        @Test
160        public void testGetNumPossible_1() throws Exception {
161                int length = 2;
162                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
163                                mockProcess, sequencesCovered, length);
164
165                int result = fixture.getNumPossible();
166
167                assertEquals(9, result);
168        }
169
170        @Test
171        public void testSetSequences_1() throws Exception {
172                int length = 2;
173                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
174                                mockProcess, sequencesCovered, length);
175
176                fixture.setSequences(sequencesCovered2);
177
178                // testing indirectly if sequences were changed
179                assertEquals(2, fixture.getNumCovered());
180        }
181
182        @Test(expected = java.lang.IllegalArgumentException.class)
183        public void testSetSequences_2() throws Exception {
184                int length = 2;
185                CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
186                                mockProcess, sequencesCovered, length);
187
188                fixture.setSequences(null);
189        }
190
191        @Before
192        public void setUp() throws Exception {
193                Collection<List<Event>> sequences = new LinkedList<List<Event>>();
194                List<Event> sequence1 = new ArrayList<Event>();
195                sequence1.add(new Event(new StringEventType("a")));
196                sequence1.add(new Event(new StringEventType("b")));
197                sequence1.add(new Event(new StringEventType("r")));
198                sequence1.add(new Event(new StringEventType("a")));
199                List<Event> sequence2 = new ArrayList<Event>();
200                sequence2.add(new Event(new StringEventType("c")));
201                sequence2.add(new Event(new StringEventType("a")));
202                sequence2.add(new Event(new StringEventType("d")));
203                sequence2.add(new Event(new StringEventType("a")));
204                sequence2.add(new Event(new StringEventType("b")));
205                sequence2.add(new Event(new StringEventType("r")));
206                sequence2.add(new Event(new StringEventType("a")));
207                sequences.add(sequence1);
208                sequences.add(sequence2);
209
210                sequencesCovered = new LinkedHashSet<List<Event>>();
211                List<Event> tmpList = new ArrayList<Event>();
212                tmpList.add(new Event(new StringEventType("a")));
213                tmpList.add(new Event(new StringEventType("b")));
214                tmpList.add(new Event(new StringEventType("r")));
215                sequencesCovered.add(tmpList);
216                tmpList = new ArrayList<Event>();
217                tmpList.add(new Event(new StringEventType("b")));
218                tmpList.add(new Event(new StringEventType("r")));
219                tmpList.add(new Event(new StringEventType("a")));
220                sequencesCovered.add(tmpList);
221
222                sequencesCovered2 = new LinkedHashSet<List<Event>>();
223                tmpList = new ArrayList<Event>();
224                tmpList.add(new Event(new StringEventType("a")));
225                tmpList.add(new Event(new StringEventType("b")));
226                tmpList.add(new Event(new StringEventType("r")));
227                sequencesCovered2.add(tmpList);
228
229                int markovOrder = 2;
230                mockProcess = new MockTrieBasedModel(markovOrder, new Random());
231                mockProcess.train(sequences);
232        }
233
234        public static void main(String[] args) {
235                new org.junit.runner.JUnitCore()
236                                .run(CoverageCalculatorProcessTest.class);
237        }
238}
Note: See TracBrowser for help on using the repository browser.