import junit.framework.Assert;
import junit.framework.TestCase;
/**
* Diese Klasse prüft die Vector-Klasse auf Fehler.
*/
public class TestVector extends TestCase {
// Der maximal tolerierbare Fehler beim Double-Vergleich.
private static double DELTA = 0.000000000001;
// Drei Testexemplare, diese werden in setUp instantiiert.
private Vector vector1;
private Vector vector2;
private Vector vector3;
/**
* Instantiiert die Testexemplare für jede einzelne Testmethode
* erneut. So kann gewährleistet werden, dass die Testmethoden
* unabhängig voneinander sind.
*/
protected void setUp() throws Exception {
super.setUp();
this.vector1 = new Vector(-1);
this.vector2 = new Vector(new double[] {1.0, 0.0, 1.0, 0.0});
this.vector3 = new Vector(new double[] {2.0, 0.0, 1.0, 3.0});
}
/**
* Hauptprogramm führt den Testfall auf Konsolenebene aus.
*/
public static void main(String[] arguments) {
junit.textui.TestRunner.run(TestVector.class);
}
/**
* Prüft die Methode copy der Klasse Vector auf Fehler.
*/
public void testCopy() {
Vector v1 = this.vector1.copy();
Assert.assertEquals(this.vector1.getScalars()[0],
v1.getScalars()[0], DELTA);
Vector v2 = this.vector2.copy();
Assert.assertEquals(this.vector2.getScalars()[0],
v2.getScalars()[0], DELTA);
Assert.assertEquals(this.vector2.getScalars()[1],
v2.getScalars()[1], DELTA);
Assert.assertEquals(this.vector2.getScalars()[2],
v2.getScalars()[2], DELTA);
Assert.assertEquals(this.vector2.getScalars()[3],
v2.getScalars()[3], DELTA);
Vector v3 = this.vector3.copy();
Assert.assertEquals(this.vector3.getScalars()[0],
v3.getScalars()[0], DELTA);
Assert.assertEquals(this.vector3.getScalars()[1],
v3.getScalars()[1], DELTA);
Assert.assertEquals(this.vector3.getScalars()[2],
v3.getScalars()[2], DELTA);
Assert.assertEquals(this.vector3.getScalars()[3],
v3.getScalars()[3], DELTA);
}
/**
* Prüft die Methode getDimension der Klasse Vector.
*/
public void testGetDimension() {
Assert.assertEquals(1, this.vector1.getDimension());
Assert.assertEquals(4, this.vector2.getDimension());
Assert.assertEquals(4, this.vector3.getDimension());
}
/**
* Prüft die Methode getScalars der Klasse Vector auf Fehler.
*/
public void testGetScalars() {
Assert.assertEquals(1.0, this.vector2.getScalars()[0], DELTA);
Assert.assertEquals(0.0, this.vector2.getScalars()[1], DELTA);
Assert.assertEquals(1.0, this.vector2.getScalars()[2], DELTA);
Assert.assertEquals(0.0, this.vector2.getScalars()[3], DELTA);
Assert.assertEquals(2.0, this.vector3.getScalars()[0], DELTA);
Assert.assertEquals(0.0, this.vector3.getScalars()[1], DELTA);
Assert.assertEquals(1.0, this.vector3.getScalars()[2], DELTA);
Assert.assertEquals(3.0, this.vector3.getScalars()[3], DELTA);
}
/**
* Prüft die Methode setScalars der Klasse Vector auf Fehler.
*/
public void testSetScalars() {
this.vector1.setScalars(new double[] {1.0, 2.0, 3.0, 4.0});
Assert.assertEquals(1, this.vector1.getDimension());
Assert.assertEquals(1.0, this.vector1.getScalars()[0], DELTA);
this.vector2.setScalars(new double[] {1.0, 2.0, 3.0, 4.0});
Assert.assertEquals(4, this.vector2.getDimension());
Assert.assertEquals(1.0, this.vector2.getScalars()[0], DELTA);
Assert.assertEquals(2.0, this.vector2.getScalars()[1], DELTA);
Assert.assertEquals(3.0, this.vector2.getScalars()[2], DELTA);
Assert.assertEquals(4.0, this.vector2.getScalars()[3], DELTA);
this.vector3.setScalars(new double[] {1.0, 2.0, 3.0, 4.0});
Assert.assertEquals(4, this.vector3.getDimension());
Assert.assertEquals(1.0, this.vector3.getScalars()[0], DELTA);
Assert.assertEquals(2.0, this.vector3.getScalars()[1], DELTA);
Assert.assertEquals(3.0, this.vector3.getScalars()[2], DELTA);
Assert.assertEquals(4.0, this.vector3.getScalars()[3], DELTA);
}
/**
* Prüft die Methode setScalar der Klasse Vector auf Fehler.
*/
public void testSetScalar() {
this.vector2.setScalar(-1, 2.75);
this.vector2.setScalar(4, 2.75);
Assert.assertEquals(1.0, this.vector2.getScalars()[0], DELTA);
Assert.assertEquals(0.0, this.vector2.getScalars()[1], DELTA);
Assert.assertEquals(1.0, this.vector2.getScalars()[2], DELTA);
Assert.assertEquals(0.0, this.vector2.getScalars()[3], DELTA);
this.vector2.setScalar(0, 0.75);
this.vector2.setScalar(1, 1.75);
this.vector2.setScalar(2, 2.75);
this.vector2.setScalar(3, 3.75);
Assert.assertEquals(0.75, this.vector2.getScalars()[0], DELTA);
Assert.assertEquals(1.75, this.vector2.getScalars()[1], DELTA);
Assert.assertEquals(2.75, this.vector2.getScalars()[2], DELTA);
Assert.assertEquals(3.75, this.vector2.getScalars()[3], DELTA);
}
/**
* Prüft die Methode dotProduct der Klasse Vector auf Fehler.
*/
public void testDotProduct() {
Assert.assertEquals(0.0,
Vector.dotProduct(this.vector1, this.vector1), DELTA);
Assert.assertEquals(0.0,
Vector.dotProduct(this.vector1, this.vector2), DELTA);
Assert.assertEquals(0.0,
Vector.dotProduct(this.vector1, this.vector3), DELTA);
Assert.assertEquals(0.0,
Vector.dotProduct(this.vector3, this.vector1), DELTA);
Assert.assertEquals(2.0,
Vector.dotProduct(this.vector2, this.vector2), DELTA);
Assert.assertEquals(4.0 + 1.0 + 9.0,
Vector.dotProduct(this.vector3, this.vector3), DELTA);
Assert.assertEquals(2.0 + 1.0,
Vector.dotProduct(this.vector2, this.vector3), DELTA);
}
/**
* Prüft die Methode getLength der Klasse Vector auf Fehler.
*/
public void testGetLength() {
Assert.assertEquals(0.0, this.vector1.getLength(), DELTA);
Assert.assertEquals(Math.sqrt(2.0), this.vector2.getLength(), DELTA);
Assert.assertEquals(Math.sqrt(4.0 + 1.0 + 9.0),
this.vector3.getLength(), DELTA);
}
/**
* Prüft die Methode normalize der Klasse Vector auf Fehler.
*/
public void testNormalize() {
this.vector1.normalize();
Assert.assertEquals(0.0, this.vector1.getLength(), DELTA);
this.vector2.normalize();
Assert.assertEquals(1.0, this.vector2.getLength(), DELTA);
this.vector3.normalize();
Assert.assertEquals(1.0, this.vector3.getLength(), DELTA);
}
/**
* Prüft die Methode getNormalized der Klasse Vector auf Fehler.
*/
public void testGetNormalized() {
this.vector1 = this.vector1.getNormalized();
Assert.assertEquals(0.0, this.vector1.getLength(), DELTA);
this.vector2 = this.vector2.getNormalized();
Assert.assertEquals(1.0, this.vector2.getLength(), DELTA);
this.vector3 = this.vector3.getNormalized();
Assert.assertEquals(1.0, this.vector3.getLength(), DELTA);
}
} |