From c3ca4777bbdd2da75a64b6340e6e1e856d0472d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Pl=C3=BCmicke?= Date: Wed, 18 Jul 2018 17:01:01 +0200 Subject: [PATCH] modified: ../../test/bytecode/LambdaTest.java noch unvllstaendig modified: ../../test/bytecode/MatrixTest.java Test korrekt modified: ../../test/bytecode/javFiles/Matrix.jav import byte entfernt, so dass Laufzeit passt --- test/bytecode/LambdaTest.java | 21 +++++++++ test/bytecode/MatrixTest.java | 73 ++++++++++++------------------- test/bytecode/javFiles/Matrix.jav | 6 +-- 3 files changed, 52 insertions(+), 48 deletions(-) diff --git a/test/bytecode/LambdaTest.java b/test/bytecode/LambdaTest.java index 72d21f54..1e13ac77 100644 --- a/test/bytecode/LambdaTest.java +++ b/test/bytecode/LambdaTest.java @@ -1,6 +1,12 @@ package bytecode; +import static org.junit.Assert.assertEquals; + import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; import org.junit.Test; @@ -10,6 +16,10 @@ public class LambdaTest { private static String path; private static File fileToTest; private static JavaTXCompiler compiler; + private static ClassLoader loader; + private static Class classToTest; + private static String pathToClassFile; + private static Object instanceOfClass; @Test public void generateBC() throws Exception { @@ -17,6 +27,17 @@ public class LambdaTest { fileToTest = new File(path); compiler = new JavaTXCompiler(fileToTest); compiler.generateBytecode(System.getProperty("user.dir")+"/testBytecode/generatedBC/"); + pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; + loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); + classToTest = loader.loadClass("Lambda"); + instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); + + Method m = classToTest.getDeclaredMethod("m"); + //Class + Object lambda = (m.invoke(instanceOfClass)); //.getClass(); + //Method apply = lambda.getMethod("apply", Integer.class); + //Integer result = (Integer) apply.invoke(lambda, 77); + //assertEquals(77, result); } diff --git a/test/bytecode/MatrixTest.java b/test/bytecode/MatrixTest.java index 530517b4..325cc1d8 100644 --- a/test/bytecode/MatrixTest.java +++ b/test/bytecode/MatrixTest.java @@ -24,49 +24,17 @@ public class MatrixTest { private static String pathToClassFile; private static Object instanceOfClass_m1; private static Object instanceOfClass_m2; - - @BeforeClass - public static void setUpBeforeClass() throws Exception { -// path = System.getProperty("user.dir")+"/test/bytecode/javFiles/Matrix.jav"; -// fileToTest = new File(path); -// compiler = new JavaTXCompiler(fileToTest); -// pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; -// compiler.generateBytecode(pathToClassFile); -// loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); -// classToTest = loader.loadClass("Matrix"); -// instanceOfClass = classToTest.getDeclaredConstructor().newInstance(); - path = System.getProperty("user.dir")+"/test/bytecode/javFiles/Matrix.jav"; - fileToTest = new File(path); - compiler = new JavaTXCompiler(fileToTest); - pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; - compiler.generateBytecode(pathToClassFile); - loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); - classToTest = loader.loadClass("Matrix"); - - - } + private static Object instanceOfClass_m3; @Test - public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IOException, InstantiationException { -// Vector> m1 = new Vector<>(); -// Vector r1 = new Vector<>(); -// r1.addElement(1); -// r1.addElement(0); -// m1.addElement(r1); -// Vector r2 = new Vector<>(); -// r2.addElement(0); -// r2.addElement(1); -// m1.add(r2); -// -// Vector> m2 = new Vector<>(); -// Vector mr1 = new Vector<>(); -// mr1.addElement(1); -// mr1.addElement(2); -// m2.add(mr1); -// Vector mr2 = new Vector<>(); -// mr2.addElement(3); -// mr2.addElement(4); -// m2.add(mr2); + public void test() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException, IOException, InstantiationException { + path = System.getProperty("user.dir")+"/test/bytecode/javFiles/Matrix.jav"; + fileToTest = new File(path); + compiler = new JavaTXCompiler(fileToTest); + pathToClassFile = System.getProperty("user.dir")+"/testBytecode/generatedBC/"; + compiler.generateBytecode(pathToClassFile); + loader = new URLClassLoader(new URL[] {new URL("file://"+pathToClassFile)}); + classToTest = loader.loadClass("Matrix"); Vector> vv = new Vector>(); Vector v1 = new Vector (); @@ -80,7 +48,7 @@ public class MatrixTest { //m1.addElement(v2); vv.addElement(v1); vv.addElement(v2); - instanceOfClass_m1 = classToTest.getDeclaredConstructor().newInstance(vv); //Matrix m1 = new Matrix(vv); + instanceOfClass_m1 = classToTest.getDeclaredConstructor(Vector.class).newInstance(vv); //Matrix m1 = new Matrix(vv); Vector> vv1 = new Vector>(); Vector v3 = new Vector (); @@ -94,14 +62,29 @@ public class MatrixTest { //m2.addElement(v4); vv1.addElement(v3); vv1.addElement(v4); - instanceOfClass_m2 = classToTest.getDeclaredConstructor().newInstance(vv1);//Matrix m2 = new Matrix(vv1); + instanceOfClass_m2 = classToTest.getDeclaredConstructor(Vector.class).newInstance(vv1);//Matrix m2 = new Matrix(vv1); + //Matrix m3 = m1.mul(vv1); - Method m = classToTest.getDeclaredMethod("mul", Double.class); - Object result = m.invoke(instanceOfClass_m1, instanceOfClass_m2); + Method mul = classToTest.getDeclaredMethod("mul", Vector.class); + Object result = mul.invoke(instanceOfClass_m1, instanceOfClass_m2); System.out.println(instanceOfClass_m1.toString() + " * " + instanceOfClass_m1.toString() + " = " + result.toString()); + Vector> res = new Vector>(); + Vector v5 = new Vector (); + v5.addElement(10); + v5.addElement(10); + Vector v6 = new Vector (); + v6.addElement(15); + v6.addElement(15); + //Matrix m2 = new Matrix(); + //m2.addElement(v3); + //m2.addElement(v4); + res.addElement(v5); + res.addElement(v6); + instanceOfClass_m3 = classToTest.getDeclaredConstructor(Vector.class).newInstance(res); + assertEquals(result, instanceOfClass_m3); } diff --git a/test/bytecode/javFiles/Matrix.jav b/test/bytecode/javFiles/Matrix.jav index 1f839ec1..2ba7f307 100644 --- a/test/bytecode/javFiles/Matrix.jav +++ b/test/bytecode/javFiles/Matrix.jav @@ -1,6 +1,6 @@ import java.util.Vector; import java.lang.Integer; -import java.lang.Byte; +//import java.lang.Byte; import java.lang.Boolean; public class Matrix extends Vector> { @@ -9,8 +9,8 @@ public class Matrix extends Vector> { } Matrix(vv) { - //Integer i; - var i = 0; + Integer i; + i = 0; while(i < vv.size()) { // Boolean a = this.add(vv.elementAt(i)); this.add(vv.elementAt(i));