diff --git a/src/test/java/inferWildcards/TestInferWildcardsParamType.java b/src/test/java/inferWildcards/TestInferWildcardsParamType.java new file mode 100644 index 00000000..0536fdb9 --- /dev/null +++ b/src/test/java/inferWildcards/TestInferWildcardsParamType.java @@ -0,0 +1,100 @@ +package inferWildcards; + +import static org.junit.Assert.assertThat; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.hamcrest.CoreMatchers; +import org.junit.Before; +import org.junit.Test; + +import de.dhbwstuttgart.core.JavaTXCompiler; +import de.dhbwstuttgart.inferWildcards.ConstraintsGenerationUtils; +import de.dhbwstuttgart.inferWildcards.JavaTXCompilerWildcards; +import de.dhbwstuttgart.inferWildcards.TypePlaceholderReplaceUtils; +import de.dhbwstuttgart.syntaxtree.type.RefType; +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import de.dhbwstuttgart.typeinference.constraints.Constraint; +import de.dhbwstuttgart.typeinference.constraints.ConstraintSet; +import de.dhbwstuttgart.typeinference.constraints.Pair; +import de.dhbwstuttgart.typeinference.result.ResultSet; + +public class TestInferWildcardsParamType +{ + + private String resourcePath; + + @Before + public void setup () { + resourcePath = System.getProperty("user.dir") + + "/src/test/resources/inferWildcards/TestClassWildcardsParamType.java"; + } + + private JavaTXCompiler getStandardCompiler () throws ClassNotFoundException, IOException { + File[] files1 = { new File(resourcePath) }; + return new JavaTXCompiler(files1); + } + + private JavaTXCompilerWildcards getWildcardsCompiler () throws ClassNotFoundException, IOException { + File[] files1 = { new File(resourcePath) }; + return new JavaTXCompilerWildcards(files1); + } + + private static Map generateTph (JavaTXCompiler javaTXCompiler) { + System.out.println("\nReplacements:"); + + return TypePlaceholderReplaceUtils.generateTypePlaceholder(javaTXCompiler); + } + + @Test + public void testGenerateTph () throws ClassNotFoundException, IOException { + System.out.println("\n--------- Test Generate TPH --------------\n"); + + JavaTXCompiler javaTXCompiler = getStandardCompiler(); + Map generateTph = generateTph(javaTXCompiler); + + System.out.println(generateTph); + + assertThat("Number of TPH is 4", 4, CoreMatchers.is(generateTph.size())); + } + + @Test + public void testGeneratedConstraints () throws ClassNotFoundException, IOException { + System.out.println("\n--------- Test Generate Constraints --------------\n"); + + JavaTXCompilerWildcards javaTXCompilerWildcards = getWildcardsCompiler(); + Map tphMap = javaTXCompilerWildcards.getTphMap(); + ConstraintSet generateConstraints = ConstraintsGenerationUtils.generateConstraints(tphMap); + + System.out.println(generateConstraints); + + int size = 0; + for (Set> l : generateConstraints.getOderConstraints()) + for (Constraint c : l) + size += c.size(); + + assertThat("Number of Generated Constraints", tphMap.size() * 3, CoreMatchers.is(size)); + } + + @Test + public void testCombinedConstraints () throws ClassNotFoundException, IOException { + System.out.println("\n--------- Test Combined Constraints --------------\n"); + + JavaTXCompilerWildcards javaTXCompilerWildcards = getWildcardsCompiler(); + ConstraintSet constraints = javaTXCompilerWildcards.getConstraints(); + + System.out.println(constraints); + } + + @Test + public void testTypeInference () throws ClassNotFoundException, IOException { + JavaTXCompilerWildcards wildcardsCompiler = getWildcardsCompiler(); + List typeInference = wildcardsCompiler.typeInference(); + + System.out.println(typeInference); + } +}