package de.ugoe.cs.quest.usageprofiles; import java.util.ArrayList; import java.util.Collection; import java.util.List; import de.ugoe.cs.quest.eventcore.Event; import de.ugoe.cs.quest.usageprofiles.DeterministicFiniteAutomaton; import java.util.Random; import org.junit.*; import static org.junit.Assert.*; /** * The class DeterministicFiniteAutomatonTest contains tests for * the class {@link DeterministicFiniteAutomaton}. * * @author Steffen Herbold * @version 1.0 */ public class DeterministicFiniteAutomatonTest { Collection>> sequences; @Test public void testDeterministicFiniteAutomaton_1() throws Exception { Random r = new Random(); DeterministicFiniteAutomaton result = new DeterministicFiniteAutomaton( r); assertNotNull(result); assertEquals(2, result.trieOrder); } @Test(expected = java.security.InvalidParameterException.class) public void testDeterministicFiniteAutomaton_2() throws Exception { new DeterministicFiniteAutomaton(null); } @Test public void testGetProbability_1() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = new ArrayList>(); context.add(new Event("a")); context.add(new Event("b")); Event symbol = new Event("r"); double result = fixture.getProbability(context, symbol); assertEquals(1.0d, result, 0.0001); } @Test public void testGetProbability_2() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = new ArrayList>(); context.add(new Event("a")); Event symbol = new Event("b"); double result = fixture.getProbability(context, symbol); assertEquals(1.0d / 4.0, result, 0.0001); } @Test public void testGetProbability_3() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = new ArrayList>(); context.add(new Event("a")); Event symbol = new Event("c"); double result = fixture.getProbability(context, symbol); assertEquals(1.0d / 4.0, result, 0.0001); } @Test public void testGetProbability_4() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = new ArrayList>(); context.add(new Event("a")); Event symbol = new Event("e"); double result = fixture.getProbability(context, symbol); assertEquals(0.0d, result, 0.0001); } @Test(expected = java.security.InvalidParameterException.class) public void testGetProbability_5() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = new ArrayList>(); context.add(new Event("a")); Event symbol = null; fixture.getProbability(context, symbol); } @Test(expected = java.security.InvalidParameterException.class) public void testGetProbability_6() throws Exception { DeterministicFiniteAutomaton fixture = new DeterministicFiniteAutomaton( new Random()); fixture.train(sequences); List> context = null; Event symbol = new Event("a"); fixture.getProbability(context, symbol); } @Before public void setUp() throws Exception { List> sequence = new ArrayList>(); sequence.add(new Event("a")); sequence.add(new Event("b")); sequence.add(new Event("r")); sequence.add(new Event("a")); sequence.add(new Event("c")); sequence.add(new Event("a")); sequence.add(new Event("d")); sequence.add(new Event("a")); sequence.add(new Event("b")); sequence.add(new Event("r")); sequence.add(new Event("a")); sequences = new ArrayList>>(); sequences.add(sequence); } public static void main(String[] args) { new org.junit.runner.JUnitCore() .run(DeterministicFiniteAutomatonTest.class); } }