Ignore:
Timestamp:
08/16/12 14:45:03 (12 years ago)
Author:
sherbold
Message:
  • countless adaptations throughout nearly all components to remove errors introduced due to the refactoring of the event core
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 
    12package de.ugoe.cs.quest.usageprofiles; 
    23 
     
    1415import de.ugoe.cs.quest.usageprofiles.PredictionByPartialMatch; 
    1516import de.ugoe.cs.quest.usageprofiles.TrieNode; 
     17import de.ugoe.cs.quest.usageprofiles.mock.StringEventType; 
    1618import static org.junit.Assert.*; 
    1719 
    1820/** 
    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 *  
    2124 * @author Steffen Herbold 
    2225 * @version 1.0 
    2326 */ 
    2427public 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         @Test 
    36         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")); 
    5428 
    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; 
    11630 
    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    } 
    12237 
    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); 
    12745 
    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"))); 
    14456 
    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    } 
    148149} 
Note: See TracChangeset for help on using the changeset viewer.