public abstract class Interval {
private static final String SEPARADOR = ", ";
protected Endpoint minimumEndpoint;
protected Endpoint maximumEndpoint;
protected Interval(Endpoint minimumEndpoint, Endpoint maximumEndpoint) {
this.minimumEndpoint = minimumEndpoint;
this.maximumEndpoint = maximumEndpoint;
}
public double midPoint() {
return minimumEndpoint.midPoint(maximumEndpoint);
} }
@Test
public void midPointTest() {
assertEquals(5, IntervalFactory.getInterval(0, 10, Opening.BOTH_OPENED).midPoint(), 0.0);
assertEquals(5, IntervalFactory.getInterval(0, 10, Opening.LEFT_OPENED).midPoint(), 0.0);
assertEquals(5, IntervalFactory.getInterval(0, 10, Opening.RIGHT_OPENED).midPoint(), 0.0);
assertEquals(5, IntervalFactory.getInterval(0, 10, Opening.UNOPENED).midPoint(), 0.0);
assertEquals(0, IntervalFactory.getInterval(-10, 10, Opening.BOTH_OPENED).midPoint(), 0.0);
assertEquals(0, IntervalFactory.getInterval(-10, 10, Opening.LEFT_OPENED).midPoint(), 0.0);
assertEquals(0, IntervalFactory.getInterval(-10, 10, Opening.RIGHT_OPENED).midPoint(), 0.0);
assertEquals(0, IntervalFactory.getInterval(-10, 10, Opening.UNOPENED).midPoint(), 0.0);
assertEquals(-10, IntervalFactory.getInterval(-15, -5, Opening.BOTH_OPENED).midPoint(), 0.0);
assertEquals(-10, IntervalFactory.getInterval(-15, -5, Opening.LEFT_OPENED).midPoint(), 0.0);
assertEquals(-10, IntervalFactory.getInterval(-15, -5, Opening.RIGHT_OPENED).midPoint(), 0.0);
assertEquals(-10, IntervalFactory.getInterval(-15, -5, Opening.UNOPENED).midPoint(), 0.0);
}
private static final int [] MINIMUN = {0, 0, 0, 0, -10, - 10, -10, -10, -15, -15, -15, -15};
private static final int [] MAXIMUN = {10, 10, 10, 10, 10, 10, 10, 10, -5, -5, -5, -5};
private static final Opening [] OPENING = {Opening.BOTH_OPENED, Opening.LEFT_OPENED, Opening.RIGHT_OPENED, Opening.UNOPENED, Opening.BOTH_OPENED, Opening.LEFT_OPENED, Opening.RIGHT_OPENED, Opening.UNOPENED, Opening.BOTH_OPENED, Opening.LEFT_OPENED, Opening.RIGHT_OPENED, Opening.UNOPENED};
private static final double [] RETURN_VALUE = {5, 5, 5, 5, 0, 0, 0, 0, -10, -10, -10, -10};
public int m1(boolean x) {
return value1 + value2 + (x ? 1 : 0);
}
@Test
public void testM1Boolean() { while (data.hasNext()) {
data.next();
assertEquals(data.getM1BooleanResult(),
data.getClass1().m1(data.getM1BooleanParameter 0()));
} }
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
java.lang.reflect.
name = clazz.getSimpleName();
clazz Class<?>
clazz.getDeclaredConstructors();
clazz.getDeclaredMethods();
method.getName();
void
method.getReturnType().getSimpleName();
parameter0
parameter2
private void build() {
for (File file : this.file.listFiles()) { if (file.isDirectory()) {
Margin.instance().inc();
this.packages.add(new ProjectPackage(file, this));
Margin.instance().dec();
} else if (file.isFile() &&
file.getName().endsWith(".class")) {
String className = this.name + "." + file.getName().split("\\.")[0];
try {
Margin.instance().inc();
this.clazzes.add(new
ProjectClazz(TestFrameworkClassLoader.
getClassLoader().loadClass(className), this));
Margin.instance().dec();
} } }
this.components.addAll(this.packages);
this.components.addAll(this.clazzes);
}
ProjectPackage ProjectClazz
ProjectMethodMember ProjectConstructorMember
CodeProject
ProjectPackage ProjectPackage
ProjectClazz
ProjectCodeFile ProjectPackage ProjectClazz
ProjectClazz
ProjectMethodMember ProjectConstructorMember
ProjectClazz
ProjectMethodMember ProjectConstructorMember
ProjectMethodMember ProjectConstructorMember ProjectParameterMember
ProjectMethodMember returnType
public class TestFrameworkClassLoader extends URLClassLoader{
private static TestFrameworkClassLoader classLoader;
private TestFrameworkClassLoader(URL[] path) { super(path);
}
}
public static void setClassLoaderByPath(String paths[]) {
try {
URL[] urls = new URL[paths.length];
for (int i = 0; i < paths.length; i++) { urls[i] = new URL("file:///"+paths[i]);
}
classLoader = new TestFrameworkClassLoader(urls);
} catch (MalformedURLException e) { e.printStackTrace();
} }
public static void setClassLoaderByPath(String path) { String[] paths = {path};
setClassLoaderByPath(paths);
} }
TestWriter
visit(ProjectClazz)
package package1;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import package1.Class1;
import package1._dataReaders.Class1TestDataReader;
public class Class1Test {
@BeforeClass
public static void init() {
data = new Class1TestDataReader();
}
@After
public void reset() { data.reset();
}
public int m1(int x) {
return value1 + value2 + x;
}
@Test
public void testM1Int() { while (data.hasNext()) { data.next();
assertEquals(data.getM1IntResult(),
data.getClass1().m1(data.getM1IntParameter0()));
} }
public Class1() { value1 = 0;
value2 = 0;
}
@Test
public void testClass1() {
while (data.hasNext("Class1")) { Class1 class1 = data.getClass1();
fail("Not yet implemented");
} }
fail Not yet implemented close
data, Class1TestDataReader
DataReaderWriter
Class1TestDataReader TestDataReader
TestDataReader
hasNext next
DataReaderWriter
ProjectVisitor TestWriter
Class1TestDataReader
HeaderDataWriter
ProjectCode
ConfigCode
toJson ConfigCode
public class Class1 { private int value1;
private int value2;
public Class1() { value1 = 0;
value2 = 0;
}
public Class1(int value1) { this.value1 = value1;
this.value2 = 0;
}
public Class1(int value1, int value2) { this.value1 = value1;
this.value2 = value2;
}
public int m1() { return value1;
}
public int m1(int x) {
return value1 + value2 + x;
}
public int m1(float x) {
return value1 + value2 + (int) x;
}
public int m1(double x) {
return value1 + value2 + (int) x;
}
public int m1(boolean x) {
return value1 + value2 + (x ? 1 : 0);
}
public int m1(String x) {
return value1 + value2 + Integer.parseInt(x);
}
public int m1(int x, int y) {
return value1 + value2 + x + y;
}
@Override
public String toString() {
return "[value1: " + value1 + ", value2: "+ value2 +"]";
} }
package package1;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import package1.Class1;
import package1._dataReaders.Class1TestDataReader;
public class Class1Test {
private static Class1TestDataReader data;
public static void init() {
data = new Class1TestDataReader();
}
@After
public void reset() { data.reset();
} @Test
public void testClass1IntInt() {
while (data.hasNext("Class1IntInt")) { Class1 class1 = data.getClass1();
fail("Not yet implemented");
} } @Test
public void testClass1Int() {
while (data.hasNext("Class1Int")) { Class1 class1 = data.getClass1();
fail("Not yet implemented");
} } @Test
public void testClass1() {
while (data.hasNext("Class1")) { Class1 class1 = data.getClass1();
fail("Not yet implemented");
} } @Test
public void testToString() { while (data.hasNext()) { data.next();
assertEquals(data.getToStringResult(), data.getClass1().toString());
} }
@Test
public void testM1Boolean() { while (data.hasNext()) { data.next();
assertEquals(data.getM1BooleanResult(),
data.getClass1().m1(data.getM1BooleanParameter0() ));
} } @Test
public void testM1String() { while (data.hasNext()) { data.next();
assertEquals(data.getM1StringResult(),
data.getClass1().m1(data.getM1StringParameter0()) );
} } @Test
public void testM1IntInt() { while (data.hasNext()) { data.next();
assertEquals(data.getM1IntIntResult(),
data.getClass1().m1(data.getM1IntIntParameter0(), data.getM1IntIntParameter1()));
} } @Test
public void testM1Float() { while (data.hasNext()) { data.next();
assertEquals(data.getM1FloatResult(),
data.getClass1().m1(data.getM1FloatParameter0()))
; } }
while (data.hasNext()) { data.next();
assertEquals(data.getM1DoubleResult(),
data.getClass1().m1(data.getM1DoubleParameter0()) );
} } @Test
public void testM1() {
while (data.hasNext()) { data.next();
assertEquals(data.getM1Result(), data.getClass1().m1());
} } @Test
public void testM1Int() { while (data.hasNext()) { data.next();
assertEquals(data.getM1IntResult(),
data.getClass1().m1(data.getM1IntParameter0()));
} } }
package package1._dataReaders;
import readers.TestDataReader;
import readers.exceptions.EmptyDataReaderException;
import readers.exceptions.InvalidDataReaderException;
import package1.Class1;
public class Class1TestDataReader extends TestDataReader {
private Class1 class1;
private final static String[] CONSTRUCTOR_NAMES = {"Class1IntInt", "Class1Int", "Class1"};
public Class1TestDataReader() {
super("C:\\Users\\CarlosDavid\\git\\exampleProject\\src\\test
\\resources\\package1\\Class1TestData.xlsx");
}
public boolean hasNext(String constructorName) { while (this.hasNext()) {
this.getDataReader().next();
if (this.existsConstructor(constructorName)) { return true;
} }
return false;
}
public void next() {
this.getDataReader().next();
int i = 0;
this.class1= null;
while (i < CONSTRUCTOR_NAMES.length &&
!this.existsConstructor(CONSTRUCTOR_NAMES[i])) { i++;
}
this.construct(CONSTRUCTOR_NAMES[i]);
}
public void next(String constructorName) { this.class1= null;
this.construct(constructorName);
}
private boolean existsConstructor(String constructorName) {
switch (constructorName) { case "Class1IntInt":
return existsConstructorClass1IntInt();
case "Class1":
return existsConstructorClass1();
default:
return false;
} }
private void construct(String constructorName) { switch (constructorName) {
case "Class1IntInt":
constructClass1IntInt();
break;
case "Class1Int":
constructClass1Int();
break;
case "Class1":
constructClass1();
break;
} }
public Class1 getClass1() { return this.class1;
}
private boolean existsConstructorClass1IntInt() { try {
this.getInt("getClass1IntIntParameter0");
this.getInt("getClass1IntIntParameter1");
} catch (EmptyDataReaderException e) { return false;
}
return true;
}
private void constructClass1IntInt() {
try {
int Class1IntIntParameter0 =
this.getInt("getClass1IntIntParameter0");
int Class1IntIntParameter1 =
this.getInt("getClass1IntIntParameter1");
this.class1= new Class1(Class1IntIntParameter0, Class1IntIntParameter1);
} catch (EmptyDataReaderException e) {}
}
private boolean existsConstructorClass1Int() { try {
this.getInt("getClass1IntParameter0");
} catch (EmptyDataReaderException e) { return false;
}
return true;
}
private void constructClass1Int() { try {
int Class1IntParameter0 =
this.getInt("getClass1IntParameter0");
this.class1= new Class1(Class1IntParameter0);
} catch (EmptyDataReaderException e) {}
}
private boolean existsConstructorClass1() { try {
String x = this.getString("getClass1");
if (!x.equalsIgnoreCase("x")) {
throw new InvalidDataReaderException("Data under column \"getClass1\" at row: "+
this.getDataReader().getRow()+ " should be x or X");
}
} catch (InvalidDataReaderException e) { System.out.println(e.getMessage());
System.exit(0);
} catch (EmptyDataReaderException e) { return false;
}
return true;
}
}
public String getToStringResult() { this.setTestTarget("testToString");
this.getDataReader().next();
String result = null;
try {
result = this.getString("getToStringResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getToStringResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1BooleanResult() {
this.setTestTarget("testM1Boolean");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1BooleanResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1BooleanResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public boolean getM1BooleanParameter0() { this.setTestTarget("testM1Boolean");
boolean result = false;
try {
result = this.getBoolean("getM1BooleanParameter0");
} catch (EmptyDataReaderException e) { System.out.println("Error in
getM1BooleanParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1StringResult() {
this.setTestTarget("testM1String");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1StringResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1StringResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public String getM1StringParameter0() { this.setTestTarget("testM1String");
String result = null;
try {
result = this.getString("getM1StringParameter0");
} catch (EmptyDataReaderException e) { System.out.println("Error in
getM1StringParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1IntIntResult() {
this.setTestTarget("testM1IntInt");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1IntIntResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1IntIntResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
int result = 0;
try {
result = this.getInt("getM1IntIntParameter0");
} catch (EmptyDataReaderException e) { System.out.println("Error in
getM1IntIntParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1IntIntParameter1() { this.setTestTarget("testM1IntInt");
int result = 0;
try {
result = this.getInt("getM1IntIntParameter1");
} catch (EmptyDataReaderException e) { System.out.println("Error in
getM1IntIntParameter1");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1FloatResult() {
this.setTestTarget("testM1Float");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1FloatResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1FloatResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public float getM1FloatParameter0() { this.setTestTarget("testM1Float");
float result = 0;
try {
result = this.getFloat("getM1FloatParameter0");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1FloatParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1DoubleResult() {
this.setTestTarget("testM1Double");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1DoubleResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1DoubleResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public double getM1DoubleParameter0() { this.setTestTarget("testM1Double");
double result = 0;
try {
result = this.getDouble("getM1DoubleParameter0");
} catch (EmptyDataReaderException e) { System.out.println("Error in
getM1DoubleParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1Result");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1Result");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1IntResult() {
this.setTestTarget("testM1Int");
this.getDataReader().next();
int result = 0;
try {
result = this.getInt("getM1IntResult");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1IntResult");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
}
public int getM1IntParameter0() { this.setTestTarget("testM1Int");
int result = 0;
try {
result = this.getInt("getM1IntParameter0");
} catch (EmptyDataReaderException e) {
System.out.println("Error in getM1IntParameter0");
System.out.println(e.getMessage());
System.exit(0);
}
return result;
} }