source: trunk/autoquest-core-usageprofiles-test/src/test/java/de/ugoe/cs/autoquest/usageprofiles/FirstOrderMarkovModelTest.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: 3.4 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.usageprofiles;
16
17import java.util.ArrayList;
18import java.util.Collection;
19import java.util.List;
20import java.util.Random;
21import org.junit.*;
22
23import de.ugoe.cs.autoquest.eventcore.Event;
24import de.ugoe.cs.autoquest.eventcore.StringEventType;
25import de.ugoe.cs.autoquest.usageprofiles.FirstOrderMarkovModel;
26import de.ugoe.cs.autoquest.usageprofiles.FirstOrderMarkovModel.MarkovEdge;
27import static org.junit.Assert.*;
28
29/**
30 * The class <code>FirstOrderMarkovModelTest</code> contains tests for the class
31 * <code>{@link FirstOrderMarkovModel}</code>.
32 *
33 * @author Steffen Herbold
34 * @version 1.0
35 */
36public class FirstOrderMarkovModelTest {
37
38        Collection<List<Event>> sequences;
39       
40        @Test
41        public void testFirstOrderMarkovModel_1() throws Exception {
42                Random r = new Random();
43
44                FirstOrderMarkovModel result = new FirstOrderMarkovModel(r);
45
46                assertNotNull(result);
47                assertEquals(r, result.r);
48                assertEquals(2, result.trieOrder);
49        }
50
51        @Test(expected = java.lang.IllegalArgumentException.class)
52        public void testFirstOrderMarkovModel_2() throws Exception {
53                new FirstOrderMarkovModel(null);
54        }
55       
56        @Test
57        public void testCalcEntropy() throws Exception {
58                Random r = new Random();
59                FirstOrderMarkovModel fixture = new FirstOrderMarkovModel(r);
60                fixture.train(sequences);
61               
62                double result = fixture.calcEntropy();
63               
64                assertEquals(0.7392d, result, 0.0001);
65        }
66       
67        @Test
68        public void testMarkovEdgeMarkovEdge_1() throws Exception {
69                double weight = 0.2d;
70               
71                MarkovEdge result = new MarkovEdge(weight);
72               
73                assertNotNull(result);
74                assertEquals(weight, result.weight, 0.0001);
75        }
76       
77        @Test
78        public void testMarkovEdgeToString_1() throws Exception {
79                double weight = 0.2d;
80                MarkovEdge fixture = new MarkovEdge(weight);
81               
82                String result = fixture.toString();
83               
84                assertEquals(Double.toString(0.2d), result);
85        }
86       
87        @Before
88        public void setUp() throws Exception {
89                List<Event> sequence = new ArrayList<Event>();
90                sequence.add(new Event(new StringEventType("a")));
91                sequence.add(new Event(new StringEventType("b")));
92                sequence.add(new Event(new StringEventType("r")));
93                sequence.add(new Event(new StringEventType("a")));
94                sequence.add(new Event(new StringEventType("c")));
95                sequence.add(new Event(new StringEventType("a")));
96                sequence.add(new Event(new StringEventType("d")));
97                sequence.add(new Event(new StringEventType("a")));
98                sequence.add(new Event(new StringEventType("b")));
99                sequence.add(new Event(new StringEventType("r")));
100                sequence.add(new Event(new StringEventType("a")));
101
102                sequences = new ArrayList<List<Event>>();
103                sequences.add(sequence);
104        }
105
106        public static void main(String[] args) {
107                new org.junit.runner.JUnitCore().run(FirstOrderMarkovModelTest.class);
108        }
109}
Note: See TracBrowser for help on using the repository browser.