source: trunk/EventBenchCoreTest/src/de/ugoe/cs/eventbench/models/FirstOrderMarkovModelTest.java @ 346

Last change on this file since 346 was 346, checked in by sherbold, 12 years ago
  • added JUnit test cases for public inner helper classes of de.ugoe.cs.eventbench.models.FirstOrderMarkovModel? and Trie
  • Property svn:mime-type set to text/plain
File size: 2.5 KB
Line 
1package de.ugoe.cs.eventbench.models;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.List;
6import java.util.Random;
7import org.junit.*;
8
9import de.ugoe.cs.eventbench.data.Event;
10import de.ugoe.cs.eventbench.models.FirstOrderMarkovModel.MarkovEdge;
11import static org.junit.Assert.*;
12
13/**
14 * The class <code>FirstOrderMarkovModelTest</code> contains tests for the class
15 * <code>{@link FirstOrderMarkovModel}</code>.
16 *
17 * @author Steffen Herbold
18 * @version 1.0
19 */
20public class FirstOrderMarkovModelTest {
21
22        Collection<List<? extends Event<?>>> sequences;
23       
24        @Test
25        public void testFirstOrderMarkovModel_1() throws Exception {
26                Random r = new Random();
27
28                FirstOrderMarkovModel result = new FirstOrderMarkovModel(r);
29
30                assertNotNull(result);
31                assertEquals(r, result.r);
32                assertEquals(2, result.trieOrder);
33        }
34
35        @Test(expected = java.security.InvalidParameterException.class)
36        public void testFirstOrderMarkovModel_2() throws Exception {
37                new FirstOrderMarkovModel(null);
38        }
39       
40        @Test
41        public void testCalcEntropy() throws Exception {
42                Random r = new Random();
43                FirstOrderMarkovModel fixture = new FirstOrderMarkovModel(r);
44                fixture.train(sequences);
45               
46                double result = fixture.calcEntropy();
47               
48                assertEquals(0.7392d, result, 0.0001);
49        }
50       
51        @Test
52        public void testMarkovEdgeMarkovEdge_1() throws Exception {
53                double weight = 0.2d;
54               
55                MarkovEdge result = new MarkovEdge(weight);
56               
57                assertNotNull(result);
58                assertEquals(weight, result.weight, 0.0001);
59        }
60       
61        @Test
62        public void testMarkovEdgeToString_1() throws Exception {
63                double weight = 0.2d;
64                MarkovEdge fixture = new MarkovEdge(weight);
65               
66                String result = fixture.toString();
67               
68                assertEquals(Double.toString(0.2d), result);
69        }
70       
71        @Before
72        public void setUp() throws Exception {
73                List<Event<?>> sequence = new ArrayList<Event<?>>();
74                sequence.add(new Event<String>("a"));
75                sequence.add(new Event<String>("b"));
76                sequence.add(new Event<String>("r"));
77                sequence.add(new Event<String>("a"));
78                sequence.add(new Event<String>("c"));
79                sequence.add(new Event<String>("a"));
80                sequence.add(new Event<String>("d"));
81                sequence.add(new Event<String>("a"));
82                sequence.add(new Event<String>("b"));
83                sequence.add(new Event<String>("r"));
84                sequence.add(new Event<String>("a"));
85
86                sequences = new ArrayList<List<? extends Event<?>>>();
87                sequences.add(sequence);
88        }
89
90        public static void main(String[] args) {
91                new org.junit.runner.JUnitCore().run(FirstOrderMarkovModelTest.class);
92        }
93}
Note: See TracBrowser for help on using the repository browser.