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.Ast.C;
import ast.ExpCore.ClassB;
@RunWith(Parameterized.class)
public class TestPush {
@Parameter(0) public String e1;
@Parameter(1) public String e2;
@Parameter(2) public String e3;
@Parameterized.Parameters
public static List<Object[]> createData() {
return Arrays.asList(new Object[][] {
{"{}","{B:{}}","B"
},{"{()}","{B:{()}}","B"
},{"{A:{}}","{B:{A:{}}}","B"
},{"{(This2 foo)}","{B:{(This3 foo)}}","B"
},{"{(This2 a,This1 b,This0 c)}","{B:{(This3 a,This2 b,This0 c)}}","B"
},{"{(This0.H a) H:{}}","{B:{(This0.H a) H:{}}}","B"
//test also the pushMany
}});}
@Test public void test() {
ClassB cb1=getClassB(e1);
ClassB cb2=getClassB(e2);
ClassB res=Push.pushOne(cb1,C.of(e3));
TestHelper.assertEqualExp(res,cb2);
}
}