Changeset 548 for trunk/quest-core-usageprofiles-test/src/test/java/de/ugoe/cs/quest/usageprofiles/ModelFlattenerTest.java
- Timestamp:
- 08/16/12 14:45:03 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/quest-core-usageprofiles-test/src/test/java/de/ugoe/cs/quest/usageprofiles/ModelFlattenerTest.java
r518 r548 1 1 2 package de.ugoe.cs.quest.usageprofiles; 2 3 … … 14 15 import de.ugoe.cs.quest.usageprofiles.PredictionByPartialMatch; 15 16 import de.ugoe.cs.quest.usageprofiles.TrieNode; 17 import de.ugoe.cs.quest.usageprofiles.mock.StringEventType; 16 18 import static org.junit.Assert.*; 17 19 18 20 /** 19 * The class <code>ModelFlattenerTest</code> contains tests for the class <code>{@link ModelFlattener}</code>. 20 * 21 * The class <code>ModelFlattenerTest</code> contains tests for the class 22 * <code>{@link ModelFlattener}</code>. 23 * 21 24 * @author Steffen Herbold 22 25 * @version 1.0 23 26 */ 24 27 public class ModelFlattenerTest { 25 26 List<Event<?>> sequence;27 28 private static void assertCollectionContent(Collection<?> c1, Collection<?> c2) {29 assertEquals(c1.size(), c2.size());30 for( Object obj : c1 ) {31 assertTrue(c2.contains(obj));32 }33 }34 35 @Test36 public void testFlattenHighOrderMarkovModel_1()37 throws Exception {38 ModelFlattener fixture = new ModelFlattener();39 HighOrderMarkovModel model = new HighOrderMarkovModel(2, new Random());40 Collection<List<? extends Event<?>>> sequences = new ArrayList<List<? extends Event<?>>>();41 sequences.add(sequence);42 model.train(sequences);43 44 Collection<Event<?>> expectedSymbols = new HashSet<Event<?>>();45 expectedSymbols.add(new Event<Object>("a-=-END"));46 expectedSymbols.add(new Event<Object>("a-=-b"));47 expectedSymbols.add(new Event<Object>("a-=-c"));48 expectedSymbols.add(new Event<Object>("a-=-d"));49 expectedSymbols.add(new Event<Object>("b-=-r"));50 expectedSymbols.add(new Event<Object>("c-=-a"));51 expectedSymbols.add(new Event<Object>("d-=-a"));52 expectedSymbols.add(new Event<Object>("r-=-a"));53 expectedSymbols.add(new Event<Object>("START-=-a"));54 28 55 FirstOrderMarkovModel result = fixture.flattenHighOrderMarkovModel(model); 56 57 assertCollectionContent(expectedSymbols, result.getEvents()); 58 59 TrieNode<Event<?>> root = result.trie.find(null); 60 TrieNode<Event<?>> root_aEnd = root.getChild(new Event<Object>("a-=-END")); 61 TrieNode<Event<?>> root_ab = root.getChild(new Event<Object>("a-=-b")); 62 TrieNode<Event<?>> root_ab_br = root_ab.getChild(new Event<Object>("b-=-r")); 63 TrieNode<Event<?>> root_ac = root.getChild(new Event<Object>("a-=-c")); 64 TrieNode<Event<?>> root_ac_ca = root_ac.getChild(new Event<Object>("c-=-a")); 65 TrieNode<Event<?>> root_ad = root.getChild(new Event<Object>("a-=-d")); 66 TrieNode<Event<?>> root_ad_da = root_ad.getChild(new Event<Object>("d-=-a")); 67 TrieNode<Event<?>> root_br = root.getChild(new Event<Object>("b-=-r")); 68 TrieNode<Event<?>> root_br_ra = root_br.getChild(new Event<Object>("r-=-a")); 69 TrieNode<Event<?>> root_ca = root.getChild(new Event<Object>("c-=-a")); 70 TrieNode<Event<?>> root_ca_ad = root_ca.getChild(new Event<Object>("a-=-d")); 71 TrieNode<Event<?>> root_da = root.getChild(new Event<Object>("d-=-a")); 72 TrieNode<Event<?>> root_da_ab = root_da.getChild(new Event<Object>("a-=-b")); 73 TrieNode<Event<?>> root_ra = root.getChild(new Event<Object>("r-=-a")); 74 TrieNode<Event<?>> root_ra_ac = root_ra.getChild(new Event<Object> ("a-=-c")); 75 TrieNode<Event<?>> root_ra_aEnd = root_ra.getChild(new Event<Object>("a-=-END")); 76 TrieNode<Event<?>> root_startA = root.getChild(new Event<Object>("START-=-a")); 77 TrieNode<Event<?>> root_startA_ab = root_startA.getChild(new Event<Object>("a-=-b")); 78 79 assertEquals(1, root_aEnd.getCount()); 80 assertTrue(root_aEnd.isLeaf()); 81 assertEquals(2, root_ab.getCount()); 82 assertEquals(1, root_ab.getChildren().size()); 83 assertEquals(2, root_ab_br.getCount()); 84 assertTrue(root_ab_br.isLeaf()); 85 assertEquals(1, root_ac.getCount()); 86 assertEquals(1, root_ac.getChildren().size()); 87 assertEquals(1, root_ac_ca.getCount()); 88 assertTrue(root_ac_ca.isLeaf()); 89 assertEquals(1, root_ad.getCount()); 90 assertEquals(1, root_ad.getChildren().size()); 91 assertEquals(1, root_ad_da.getCount()); 92 assertTrue(root_ad_da.isLeaf()); 93 assertEquals(2, root_br.getCount()); 94 assertEquals(1, root_br.getChildren().size()); 95 assertEquals(2, root_br_ra.getCount()); 96 assertTrue(root_br_ra.isLeaf()); 97 assertEquals(1, root_ca.getCount()); 98 assertEquals(1, root_ca.getChildren().size()); 99 assertEquals(1, root_ca_ad.getCount()); 100 assertTrue(root_ca_ad.isLeaf()); 101 assertEquals(1, root_da.getCount()); 102 assertEquals(1, root_da.getChildren().size()); 103 assertEquals(1, root_da_ab.getCount()); 104 assertTrue(root_da_ab.isLeaf()); 105 assertEquals(2, root_ra.getCount()); 106 assertEquals(2, root_ra.getChildren().size()); 107 assertEquals(1, root_ra_ac.getCount()); 108 assertTrue(root_ra_ac.isLeaf()); 109 assertEquals(1, root_ra_aEnd.getCount()); 110 assertTrue(root_ra_aEnd.isLeaf()); 111 assertEquals(1, root_startA.getCount()); 112 assertEquals(1, root_startA.getChildren().size()); 113 assertEquals(1, root_startA_ab.getCount()); 114 assertTrue(root_startA_ab.isLeaf()); 115 } 29 List<Event> sequence; 116 30 117 @Test 118 public void testFlattenPredictionByPartialMatch_1() 119 throws Exception { 120 ModelFlattener fixture = new ModelFlattener(); 121 PredictionByPartialMatch model = new PredictionByPartialMatch(1, new Random()); 31 private static void assertCollectionContent(Collection<?> c1, Collection<?> c2) { 32 assertEquals(c1.size(), c2.size()); 33 for (Object obj : c1) { 34 assertTrue(c2.contains(obj)); 35 } 36 } 122 37 123 FirstOrderMarkovModel result = fixture.flattenPredictionByPartialMatch(model); 124 125 assertEquals(null, result); 126 } 38 @Test 39 public void testFlattenHighOrderMarkovModel_1() throws Exception { 40 ModelFlattener fixture = new ModelFlattener(); 41 HighOrderMarkovModel model = new HighOrderMarkovModel(2, new Random()); 42 Collection<List<Event>> sequences = new ArrayList<List<Event>>(); 43 sequences.add(sequence); 44 model.train(sequences); 127 45 128 @Before 129 public void setUp() 130 throws Exception { 131 sequence = new ArrayList<Event<?>>(); 132 sequence.add(new Event<String>("a")); 133 sequence.add(new Event<String>("b")); 134 sequence.add(new Event<String>("r")); 135 sequence.add(new Event<String>("a")); 136 sequence.add(new Event<String>("c")); 137 sequence.add(new Event<String>("a")); 138 sequence.add(new Event<String>("d")); 139 sequence.add(new Event<String>("a")); 140 sequence.add(new Event<String>("b")); 141 sequence.add(new Event<String>("r")); 142 sequence.add(new Event<String>("a")); 143 } 46 Collection<Event> expectedSymbols = new HashSet<Event>(); 47 expectedSymbols.add(new Event(new StringEventType("a-=-END"))); 48 expectedSymbols.add(new Event(new StringEventType("a-=-b"))); 49 expectedSymbols.add(new Event(new StringEventType("a-=-c"))); 50 expectedSymbols.add(new Event(new StringEventType("a-=-d"))); 51 expectedSymbols.add(new Event(new StringEventType("b-=-r"))); 52 expectedSymbols.add(new Event(new StringEventType("c-=-a"))); 53 expectedSymbols.add(new Event(new StringEventType("d-=-a"))); 54 expectedSymbols.add(new Event(new StringEventType("r-=-a"))); 55 expectedSymbols.add(new Event(new StringEventType("START-=-a"))); 144 56 145 public static void main(String[] args) { 146 new org.junit.runner.JUnitCore().run(ModelFlattenerTest.class); 147 } 57 FirstOrderMarkovModel result = fixture.flattenHighOrderMarkovModel(model); 58 59 assertCollectionContent(expectedSymbols, result.getEvents()); 60 61 TrieNode<Event> root = result.trie.find(null); 62 TrieNode<Event> root_aEnd = root.getChild(new Event(new StringEventType("a-=-END"))); 63 TrieNode<Event> root_ab = root.getChild(new Event(new StringEventType("a-=-b"))); 64 TrieNode<Event> root_ab_br = root_ab.getChild(new Event(new StringEventType("b-=-r"))); 65 TrieNode<Event> root_ac = root.getChild(new Event(new StringEventType("a-=-c"))); 66 TrieNode<Event> root_ac_ca = root_ac.getChild(new Event(new StringEventType("c-=-a"))); 67 TrieNode<Event> root_ad = root.getChild(new Event(new StringEventType("a-=-d"))); 68 TrieNode<Event> root_ad_da = root_ad.getChild(new Event(new StringEventType("d-=-a"))); 69 TrieNode<Event> root_br = root.getChild(new Event(new StringEventType("b-=-r"))); 70 TrieNode<Event> root_br_ra = root_br.getChild(new Event(new StringEventType("r-=-a"))); 71 TrieNode<Event> root_ca = root.getChild(new Event(new StringEventType("c-=-a"))); 72 TrieNode<Event> root_ca_ad = root_ca.getChild(new Event(new StringEventType("a-=-d"))); 73 TrieNode<Event> root_da = root.getChild(new Event(new StringEventType("d-=-a"))); 74 TrieNode<Event> root_da_ab = root_da.getChild(new Event(new StringEventType("a-=-b"))); 75 TrieNode<Event> root_ra = root.getChild(new Event(new StringEventType("r-=-a"))); 76 TrieNode<Event> root_ra_ac = root_ra.getChild(new Event(new StringEventType("a-=-c"))); 77 TrieNode<Event> root_ra_aEnd = root_ra.getChild(new Event(new StringEventType("a-=-END"))); 78 TrieNode<Event> root_startA = root.getChild(new Event(new StringEventType("START-=-a"))); 79 TrieNode<Event> root_startA_ab = 80 root_startA.getChild(new Event(new StringEventType("a-=-b"))); 81 82 assertEquals(1, root_aEnd.getCount()); 83 assertTrue(root_aEnd.isLeaf()); 84 assertEquals(2, root_ab.getCount()); 85 assertEquals(1, root_ab.getChildren().size()); 86 assertEquals(2, root_ab_br.getCount()); 87 assertTrue(root_ab_br.isLeaf()); 88 assertEquals(1, root_ac.getCount()); 89 assertEquals(1, root_ac.getChildren().size()); 90 assertEquals(1, root_ac_ca.getCount()); 91 assertTrue(root_ac_ca.isLeaf()); 92 assertEquals(1, root_ad.getCount()); 93 assertEquals(1, root_ad.getChildren().size()); 94 assertEquals(1, root_ad_da.getCount()); 95 assertTrue(root_ad_da.isLeaf()); 96 assertEquals(2, root_br.getCount()); 97 assertEquals(1, root_br.getChildren().size()); 98 assertEquals(2, root_br_ra.getCount()); 99 assertTrue(root_br_ra.isLeaf()); 100 assertEquals(1, root_ca.getCount()); 101 assertEquals(1, root_ca.getChildren().size()); 102 assertEquals(1, root_ca_ad.getCount()); 103 assertTrue(root_ca_ad.isLeaf()); 104 assertEquals(1, root_da.getCount()); 105 assertEquals(1, root_da.getChildren().size()); 106 assertEquals(1, root_da_ab.getCount()); 107 assertTrue(root_da_ab.isLeaf()); 108 assertEquals(2, root_ra.getCount()); 109 assertEquals(2, root_ra.getChildren().size()); 110 assertEquals(1, root_ra_ac.getCount()); 111 assertTrue(root_ra_ac.isLeaf()); 112 assertEquals(1, root_ra_aEnd.getCount()); 113 assertTrue(root_ra_aEnd.isLeaf()); 114 assertEquals(1, root_startA.getCount()); 115 assertEquals(1, root_startA.getChildren().size()); 116 assertEquals(1, root_startA_ab.getCount()); 117 assertTrue(root_startA_ab.isLeaf()); 118 } 119 120 @Test 121 public void testFlattenPredictionByPartialMatch_1() throws Exception { 122 ModelFlattener fixture = new ModelFlattener(); 123 PredictionByPartialMatch model = new PredictionByPartialMatch(1, new Random()); 124 125 FirstOrderMarkovModel result = fixture.flattenPredictionByPartialMatch(model); 126 127 assertEquals(null, result); 128 } 129 130 @Before 131 public void setUp() throws Exception { 132 sequence = new ArrayList<Event>(); 133 sequence.add(new Event(new StringEventType("a"))); 134 sequence.add(new Event(new StringEventType("b"))); 135 sequence.add(new Event(new StringEventType("r"))); 136 sequence.add(new Event(new StringEventType("a"))); 137 sequence.add(new Event(new StringEventType("c"))); 138 sequence.add(new Event(new StringEventType("a"))); 139 sequence.add(new Event(new StringEventType("d"))); 140 sequence.add(new Event(new StringEventType("a"))); 141 sequence.add(new Event(new StringEventType("b"))); 142 sequence.add(new Event(new StringEventType("r"))); 143 sequence.add(new Event(new StringEventType("a"))); 144 } 145 146 public static void main(String[] args) { 147 new org.junit.runner.JUnitCore().run(ModelFlattenerTest.class); 148 } 148 149 }
Note: See TracChangeset
for help on using the changeset viewer.