package Sequenic.T2ext.Analyzer; import java.util.*; import org.junit.* ; import static org.junit.Assert.* ; public class PathDistanceCalculatorTest { PathDistanceCalculator PDC = new PathDistanceCalculator() ; @Test public void test_directDist1(){ LinkedList tp = new LinkedList() ; // Target test is acyclic tp.add(0) ; tp.add(1) ; tp.add(2) ; LinkedList ep = new LinkedList() ; ep.add(0) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 2) ; ep.add(2) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 2) ; ep.removeLast() ; ep.add(1) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 1) ; ep.add(2) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; ep.add(3) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; } @Test public void test_directDist2(){ LinkedList tp = new LinkedList() ; // Target test is a singleton! tp.add(0) ; LinkedList ep = new LinkedList() ; ep.add(1) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 1) ; ep.removeLast() ; ep.add(0) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; ep.add(2) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; } @Test public void test_directDist3(){ LinkedList tp = new LinkedList() ; // Target test is cyclic tp.add(2) ; tp.add(4) ; tp.add(2) ; // [2,1,2] LinkedList ep = new LinkedList() ; ep.add(0) ; ep.add(1) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 3) ; ep.add(2) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 2) ; ep.add(4) ; // ep = [0,1,2,4] assertTrue( PDC.directCoveragePathDistance(ep,tp) == 1) ; ep.add(100) ; assertTrue( PDC.directCoveragePathDistance(ep,tp) == 1) ; ep.removeLast() ; ep.add(2) ; // ep = [0,1,2,4,2] assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; ep.add(5) ; // ep = [0,1,2,4,2,5] assertTrue( PDC.directCoveragePathDistance(ep,tp) == 0) ; } @Test public void test_detourDist1(){ LinkedList tp = new LinkedList() ; // Target test is acyclic tp.add(0) ; tp.add(1) ; tp.add(2) ; // [0,1,2] LinkedList ep = new LinkedList() ; ep.add(0) ; assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 2) ; ep.add(2) ; assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 2) ; ep.removeLast() ; ep.add(100) ; ep.add(0) ; ep.add(1) ; // [0,100,0,1] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 1) ; ep.add(200) ; ep.add(2) ; // [0,100,0,1,200,2] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 0) ; ep.add(300) ; assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 0) ; } @Test public void test_detourDist2(){ LinkedList tp = new LinkedList() ; // Target test is cyclic tp.add(2) ; tp.add(4) ; tp.add(2) ; // [2,4,2] LinkedList ep = new LinkedList() ; ep.add(0) ; assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 3) ; ep.add(2) ; // [0,2] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 2) ; ep.add(100) ; ep.add(2) ; // [0,2,100,2] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 2) ; ep.add(4) ; // [0,2,100,2,4] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 1) ; ep.add(200) ; ep.add(2) ; // [0,2,100,2,4,200,2] assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 0) ; ep.add(5) ; assertTrue( PDC.detourCoveragePathDistance(ep,tp) == 0) ; } }