package is.L42.connected.withSafeOperators; import static helpers.TestHelper.getClassB; import helpers.TestHelper; 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.ExpCore.ClassB; public class TestRemoveCode { //---------------------------------------------------------- @RunWith(Parameterized.class) public static class Test_removeUnreachableCode { @Parameter(0) public String _e1; @Parameter(1) public String _expected; @Parameterized.Parameters public static List<Object[]> createData() { return Arrays.asList(new Object[][] { {"{}","{}" },{"{()}","{()}" },{"{C:{}}","{C:{}}" },{"{ C://@private\n{}}","{}" },{"{ A:{ method Void foo() use C check bar() void } C://@private\n{}}","{ A:{ method Void foo() use C check bar() void } C://@private\n{}}" },{"{ A:{ method class Any foo() C } C://@private\n{}}","{ A:{ method class Any foo() C } C://@private\n{}}" },{"{(C x) C://@private\n{}}","{(C x) C://@private\n{}}" },{"{(C x) C://@private\n{(D y)} D://@private\n{(D y)}}","{(C x) C://@private\n{(D y)} D://@private\n{(D y)}}" },{"{(C x) C://@private\n{(D y)} D://@private\n{(D y)} E:{} F://@private\n{}}","{(C x) E:{} C://@private\n{(D y)} D://@private\n{(D y)} }" },{"{method C::m() foo() C://@private\n{method Void m()}}","{method C::m() foo() C://@private\n{method Void m()}}" },{"{D:{method C::m() foo()} C://@private\n{method Void m()}}","{D:{method C::m() foo()} C://@private\n{method Void m()}}" },{"{D:{method Any foo() A()} A://@private\n{() implements I} I://@private\n{interface}}","{D:{method Any foo() A()} A://@private\n{() implements I} I://@private\n{interface}}" }});} @Test public void test() { TestHelper.configureForTest(); ClassB e1=getClassB(_e1); ClassB expected=getClassB(_expected); ClassB res=RemoveCode.removeUnreachableCode(e1); TestHelper.assertEqualExp(res,expected);}} }