source: trunk/EventBenchCoreTest/src/de/ugoe/cs/eventbench/coverage/CoverageCalculatorProcessTest.java @ 332

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