package de.ugoe.cs.eventbench.coverage;
import java.util.ArrayList;
import java.util.Collection;
import de.ugoe.cs.eventbench.data.Event;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import de.ugoe.cs.eventbench.models.MockTrieBasedModel;
import org.junit.*;
import static org.junit.Assert.*;
/**
* The class CoverageCalculatorProcessTest
contains tests for the
* class {@link CoverageCalculatorProcess}
.
*
* @author Steffen Herbold
* @version 1.0
*/
public class CoverageCalculatorProcessTest {
Set>> sequencesCovered;
Set>> sequencesCovered2;
MockTrieBasedModel mockProcess;
@Test
public void testCoverageCalculatorProcess_1() throws Exception {
int length = 2;
CoverageCalculatorProcess result = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
assertNotNull(result);
}
@Test(expected = java.security.InvalidParameterException.class)
public void testCoverageCalculatorProcess_2() throws Exception {
int length = 2;
new CoverageCalculatorProcess(null,sequencesCovered, length);
}
@Test(expected = java.security.InvalidParameterException.class)
public void testCoverageCalculatorProcess_3() throws Exception {
int length = 2;
new CoverageCalculatorProcess(mockProcess, null, length);
}
@Test(expected = java.security.InvalidParameterException.class)
public void testCoverageCalculatorProcess_4() throws Exception {
int length = 0;
new CoverageCalculatorProcess(mockProcess, sequencesCovered, length);
}
@Test(expected = java.security.InvalidParameterException.class)
public void testCoverageCalculatorProcess_5() throws Exception {
int length = -1;
new CoverageCalculatorProcess(mockProcess, sequencesCovered, length);
}
@Test
public void testGetCoverageAllNoWeight_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
double result = fixture.getCoverageAllNoWeight();
assertEquals(3.0 / 49.0, result, 0.0001);
}
@Test
public void testGetCoverageAllNoWeight_2() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered2, length);
double result = fixture.getCoverageAllNoWeight();
assertEquals(2.0 / 49.0, result, 0.0001);
}
@Test
public void testGetCoveragePossibleNoWeight_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
double result = fixture.getCoveragePossibleNoWeight();
assertEquals(3.0 / 9.0, result, 0.0001);
}
@Test
public void testGetCoveragePossibleNoWeight_2() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered2, length);
double result = fixture.getCoveragePossibleNoWeight();
assertEquals(2.0 / 9.0, result, 0.0001);
}
@Test
public void testGetCoveragePossibleWeight_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
double result = fixture.getCoveragePossibleWeight();
assertEquals(6.0, result, 0.0001);
}
@Test
public void testGetCoveragePossibleWeight_2() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered2, length);
double result = fixture.getCoveragePossibleWeight();
assertEquals(4.0, result, 0.0001);
}
@Test
public void testGetNumCovered_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
int result = fixture.getNumCovered();
assertEquals(3, result);
}
@Test
public void testGetNumCovered_2() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered2, length);
int result = fixture.getNumCovered();
assertEquals(2, result);
}
@Test
public void testGetNumPossible_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
int result = fixture.getNumPossible();
assertEquals(9, result);
}
@Test
public void testSetSequences_1() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
fixture.setSequences(sequencesCovered2);
// testing indirectly if sequences were changed
assertEquals(2, fixture.getNumCovered());
}
@Test(expected = java.security.InvalidParameterException.class)
public void testSetSequences_2() throws Exception {
int length = 2;
CoverageCalculatorProcess fixture = new CoverageCalculatorProcess(
mockProcess, sequencesCovered, length);
fixture.setSequences(null);
}
@Before
public void setUp() throws Exception {
Collection>> sequences = new LinkedList>>();
List> sequence1 = new ArrayList>();
sequence1.add(new Event("a"));
sequence1.add(new Event("b"));
sequence1.add(new Event("r"));
sequence1.add(new Event("a"));
List> sequence2 = new ArrayList>();
sequence2.add(new Event("c"));
sequence2.add(new Event("a"));
sequence2.add(new Event("d"));
sequence2.add(new Event("a"));
sequence2.add(new Event("b"));
sequence2.add(new Event("r"));
sequence2.add(new Event("a"));
sequences.add(sequence1);
sequences.add(sequence2);
sequencesCovered = new LinkedHashSet>>();
List> tmpList = new ArrayList>();
tmpList.add(new Event("a"));
tmpList.add(new Event("b"));
tmpList.add(new Event("r"));
sequencesCovered.add(tmpList);
tmpList = new ArrayList>();
tmpList.add(new Event("b"));
tmpList.add(new Event("r"));
tmpList.add(new Event("a"));
sequencesCovered.add(tmpList);
sequencesCovered2 = new LinkedHashSet>>();
tmpList = new ArrayList>();
tmpList.add(new Event("a"));
tmpList.add(new Event("b"));
tmpList.add(new Event("r"));
sequencesCovered2.add(tmpList);
int markovOrder = 2;
mockProcess = new MockTrieBasedModel(markovOrder, new Random());
mockProcess.train(sequences);
}
public static void main(String[] args) {
new org.junit.runner.JUnitCore()
.run(CoverageCalculatorProcessTest.class);
}
}