package programReduction; import static helpers.TestHelper.lineNumber; import static org.junit.Assert.*; import java.util.Arrays; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import ast.Ast; import ast.ExpCore; import ast.Ast.Path; import helpers.TestHelper; public class TestUsedPaths { @RunWith(Parameterized.class) public static class Test1 { @Parameter(0) public int _lineNumber; @Parameter(1) public String _p; @Parameter(2) public String _e; @Parameter(3) public String _expected1; @Parameter(4) public String _expected2; @Parameterized.Parameters public static List<Object[]> createData() { return Arrays.asList(new Object[][] { {lineNumber(),"{B:error void}","Void","<Empty Paths>","<Empty Paths>" },{lineNumber(),"{B:error void}","Void.foo()","<Empty Paths>","<Empty Paths>" },{lineNumber(),"{A:{}B:error void}","A.foo()","<Empty Paths>","This0.A " },{lineNumber(),"{C:{} A:{ method C m()} B:error void}","A.foo()","<Empty Paths>","This0.A This0.C " },{lineNumber(),"{ A:{ } B:error void}"," (A a=Any.foo() a)","<Empty Paths>","This0.A " },{lineNumber(),"{A:{(fwd A x)} Factory:{ class method A (fwd A a) A(x:a)} B:error void} ", " (A myA=Factory(a:myA) {})","<Empty Paths>","This0.A This0.Factory " }});} @Test public void test() { Program p=TestProgram.p(_p); ExpCore e=TestHelper.getExpCore(TestUsedPaths.class.getSimpleName(),_e); PathsPaths res = UsedPaths.usedPathsE(p, e); assertEquals(this._expected1,res.left.toString()); assertEquals(this._expected2,res.right.toString()); } } }