001    package de.hska.java.aufgaben.suchen;
002    
003    import junit.framework.TestCase;
004    
005    /**
006     * JUnit-Testklasse für Nullstellensuche.
007     * 
008     * @author Christian Pape
009     *
010     */
011    public class NullstellensucheTest extends TestCase {
012    
013            /**
014             * Überprüft die Nullstellensuche bei einem Polynom 3. Grades.
015             */
016            public void testSucheNullstelle() {
017                    Funktion f = new EinPolynom();
018                    Nullstellensuche nullstellensuche = new Nullstellensuche(f, 0.0001);
019                    
020                    assertEquals(0.0, f.f(nullstellensuche.sucheNullstelle(-1, 1)), 0.0001);
021            }
022    
023            /**
024             * Überprüft, ob bei (x+1)(x-1) die beiden Nullstellen 1 und -1 gefunden werden.s
025             *
026             */
027            public void testSucheNullstelle1() {
028                    // Für Freunde der anonymen Klassen:
029                    Funktion f = new Funktion() {
030    
031                            public double f(double x) {
032                                    return (x + 1) * (x - 1);
033                            }
034                            
035                    };
036                    
037                    Nullstellensuche nullstellensuche = new Nullstellensuche(f, 0.0001);
038    
039                    assertEquals(0.0, f.f(nullstellensuche.sucheNullstelle(0, -2)), 0.0001);
040                    assertEquals(0.0, f.f(nullstellensuche.sucheNullstelle(2, 0)), 0.0001);
041    
042            }
043    }