Java tutorial
/** * Copyright 2013 Th. K. Walter, Nrnberg. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.thkwalter.koordinatensystem; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.apache.commons.math3.geometry.euclidean.twod.Vector2D; import org.junit.Before; import org.junit.Test; /** * Diese Klasse enthlt Tests fr die Klasse {@link Achsendimensionierung}. * * @author Th. K. Walter */ public class AchsendimensionierungTest { /** * Ein Objekt der zu testenden Klasse {@link Achsendimensionierung.} */ private Achsendimensionierung achsendimensionierung; /** * Die Punktemenge, die fr den Test verwendet wird. */ private Vector2D[] punkte; // ===================================================================================================================== // ===================================================================================================================== /** * Diese Methode initialisiert die Tests. * * @throws java.lang.Exception */ @Before public void setUp() throws Exception { // Die Punktemenge, die fr den Test verwendet wird, wird erzeugt. this.punkte = new Vector2D[] { new Vector2D(-1, 0), new Vector2D(0, 2), new Vector2D(3, 0), new Vector2D(0, -4) }; // Das Objekt der zu testenden Klasse wird initialisiert. this.achsendimensionierung = new Achsendimensionierung(this.punkte); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr den Konstruktor {@link Achsendimensionierung#Achsendimensionierung(Vector2D[])}. */ @Test public void testAchsendimensionierung() { // Es wird berprft, ob der Konstruktor das Objekt der zu testenden Klasse erzeugt hat. assertNotNull(this.achsendimensionierung); // Der Wertebereich wird bestimmt. Wertebereich wertebereich = this.achsendimensionierung.getWertebereichKoordinatensystem(); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(3.4, wertebereich.getMaxX(), 3.4 / 1000); assertEquals(-1.4, wertebereich.getMinX(), -1.6 / 1000); assertEquals(2.6, wertebereich.getMaxY(), 2.6 / 1000); assertEquals(-4.6, wertebereich.getMinY(), -4.6 / 1000); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr die Methode {@link Achsendimensionierung#wertebereichBestimmen(Vector2D[])}. * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ @Test public void testWertebereichBestimmen() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { // Die zu testende Methode wird ausgefhrt. Method method = Achsendimensionierung.class.getDeclaredMethod("wertebereichBestimmen", Vector2D[].class); method.setAccessible(true); Wertebereich wertebereich = (Wertebereich) method.invoke(this.achsendimensionierung, (Object) this.punkte); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(this.punkte[2].getX(), wertebereich.getMaxX(), 0.0); assertEquals(this.punkte[0].getX(), wertebereich.getMinX(), 0.0); assertEquals(this.punkte[1].getY(), wertebereich.getMaxY(), 0.0); assertEquals(this.punkte[3].getY(), wertebereich.getMinY(), 0.0); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr die Methode {@link Achsendimensionierung#sicherheitsabstandHinzufuegen(Wertebereich)}. * * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ @Test public void testSicherheitsabstandHinzufuegen() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { // Die Testdaten werden erstellt. Wertebereich wertebereichPunktemenge = new Wertebereich(10.0, 5.0, 0.0, -5.0); // Die zu testende Methode wird ausgefhrt. Method method = Achsendimensionierung.class.getDeclaredMethod("sicherheitsabstandHinzufuegen", Wertebereich.class); method.setAccessible(true); Wertebereich wertebereich = (Wertebereich) method.invoke(this.achsendimensionierung, wertebereichPunktemenge); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(11, wertebereich.getMaxX(), 11.0 / 1000); assertEquals(-1.0, wertebereich.getMinX(), -1.0 / 1000); assertEquals(6.0, wertebereich.getMaxY(), 6.0 / 1000); assertEquals(-6.0, wertebereich.getMinY(), -6.0 / 1000); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr die Methode {@link Achsendimensionierung#ursprungEinbeziehen(Wertebereich)}. * * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ @Test public void testUrsprungEinbeziehen1() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { // Die Testdaten werden erstellt. Wertebereich wertebereichPunktemenge = new Wertebereich(10.0, 9.0, 1.0, 2.0); // Die zu testende Methode wird ausgefhrt. Method method = Achsendimensionierung.class.getDeclaredMethod("ursprungEinbeziehen", Wertebereich.class); method.setAccessible(true); Wertebereich wertebereich = (Wertebereich) method.invoke(this.achsendimensionierung, wertebereichPunktemenge); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(wertebereichPunktemenge.getMaxX(), wertebereich.getMaxX(), 0.0); assertEquals(wertebereichPunktemenge.getMaxY(), wertebereich.getMaxY(), 0.0); assertEquals(0.0, wertebereich.getMinX(), 0.0); assertEquals(0.0, wertebereich.getMinY(), 0.0); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr die Methode {@link Achsendimensionierung#ursprungEinbeziehen(Wertebereich)}. * * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ @Test public void testUrsprungEinbeziehen2() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { // Die Testdaten werden erstellt. Wertebereich wertebereichPunktemenge = new Wertebereich(-1.0, -2.0, -3.0, -4.0); // Die zu testende Methode wird ausgefhrt. Method method = Achsendimensionierung.class.getDeclaredMethod("ursprungEinbeziehen", Wertebereich.class); method.setAccessible(true); Wertebereich wertebereich = (Wertebereich) method.invoke(this.achsendimensionierung, wertebereichPunktemenge); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(0.0, wertebereich.getMaxX(), 0.0); assertEquals(0.0, wertebereich.getMaxY(), 0.0); assertEquals(wertebereichPunktemenge.getMinX(), wertebereich.getMinX(), 0.0); assertEquals(wertebereichPunktemenge.getMinY(), wertebereich.getMinY(), 0.0); } // ===================================================================================================================== // ===================================================================================================================== /** * Test fr die Methode {@link Achsendimensionierung#ursprungEinbeziehen(Wertebereich)}. * * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */ @Test public void testUrsprungEinbeziehen3() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { // Die Testdaten werden erstellt. Wertebereich wertebereichPunktemenge = new Wertebereich(1.0, 2.0, -3.0, -4.0); // Die zu testende Methode wird ausgefhrt. Method method = Achsendimensionierung.class.getDeclaredMethod("ursprungEinbeziehen", Wertebereich.class); method.setAccessible(true); Wertebereich wertebereich = (Wertebereich) method.invoke(this.achsendimensionierung, wertebereichPunktemenge); // Es wird berprft, ob der korrekte Wertebereich bestimmt worden ist. assertEquals(wertebereichPunktemenge.getMaxX(), wertebereich.getMaxX(), 0.0); assertEquals(wertebereichPunktemenge.getMaxY(), wertebereich.getMaxY(), 0.0); assertEquals(wertebereichPunktemenge.getMinX(), wertebereich.getMinX(), 0.0); assertEquals(wertebereichPunktemenge.getMinY(), wertebereich.getMinY(), 0.0); } }