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

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