source: trunk/quest-core-event-test/src/de/ugoe/cs/quest/usageprofiles/FirstOrderMarkovModelTest.java @ 433

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