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

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