package cmu.peers;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.junit.Test;
import cmu.conditional.ChoiceFactory;
import cmu.conditional.One;
import de.fosd.typechef.featureexpr.FeatureExpr;
import de.fosd.typechef.featureexpr.FeatureExprFactory;
import gov.nasa.jpf.vm.NativeMethodInfo;
public class NativeMethodInfoTest {
@Test
public void testGetUnconditionalArgs() throws Exception {
// gov.nasa.jpf.vm.MJIEnv@5ec5ca56
// 403
// Choice(!CONFIG_a, One(1.5707963267948966), One(0.0))
// True
Object[] args = new Object[4];
args[0] = "MJI";
args[1] = 403;
args[2] = One.valueOf(3);
args[3] = FeatureExprFactory.True();
List<Object[]> res = NativeMethodInfo.getUnconditionalArgs(args).toList();
for (Object[] a : res) {
for (Object o : a) {
System.out.print(o);
System.out.print(" ");
}
System.out.println();
}
}
@Test
public void testGetUnconditionalArgs2() throws Exception {
// gov.nasa.jpf.vm.MJIEnv@5ec5ca56
// 403
// Choice(!CONFIG_a, One(1.5707963267948966), One(0.0))
// True
FeatureExpr feature = FeatureExprFactory.createDefinedExternal("A");
Object[] args = new Object[4];
args[0] = "MJI";
args[1] = 403;
args[2] = ChoiceFactory.create(feature, One.valueOf(3), One.valueOf(0));
args[3] = FeatureExprFactory.True();
List<Object[]> res = NativeMethodInfo.getUnconditionalArgs(args).toList();
for (Object[] a : res) {
for (Object o : a) {
System.out.print(o);
System.out.print(" ");
}
System.out.println();
}
}
@Test
public void testGetUnconditionalArgs3() throws Exception {
FeatureExpr feature = FeatureExprFactory.createDefinedExternal("A");
Object[] args = new Object[5];
args[0] = "MJI";
args[1] = 403;
args[2] = ChoiceFactory.create(feature, One.valueOf(3), One.valueOf(0));
args[3] = ChoiceFactory.create(feature, One.valueOf(5), One.valueOf(0));
args[4] = FeatureExprFactory.True();
List<Object[]> res = NativeMethodInfo.getUnconditionalArgs(args).toList();
for (Object[] a : res) {
for (Object o : a) {
System.out.print(o);
System.out.print(" ");
}
System.out.println();
}
}
@Test
public void testGetUnconditionalArgs4() throws Exception {
FeatureExpr feature = FeatureExprFactory.createDefinedExternal("A");
FeatureExpr feature2 = FeatureExprFactory.createDefinedExternal("B");
Object[] args = new Object[5];
args[0] = "MJI";
args[1] = 403;
args[2] = ChoiceFactory.create(feature, One.valueOf(3), One.valueOf(0));
args[3] = ChoiceFactory.create(feature2, One.valueOf(5), One.valueOf(0));
args[4] = FeatureExprFactory.True();
Map<Object[], FeatureExpr> res = NativeMethodInfo.getUnconditionalArgs(args).toMap();
for (Entry<Object[], FeatureExpr> a : res.entrySet()) {
for (Object o : a.getKey()) {
System.out.print(o);
System.out.print(" ");
}
System.out.println(a.getValue());
}
}
}