Hej.
Uczę się testów automatycznych.
Zrobiłem test wedle przykładu ale wywala mi błąd, choć w klasach jest wszystko ok.
package com.company;
import java.util.Scanner;
public class Solver
{
private double a,b,c;
public Solver(double a, double b, double c)
{
this.a = a;
this.b = b;
this.c = c;
}
public double[] solve()
{
double[] results = null;
double delta = delta(a, b, c);
if (delta > 0)
{
results = new double[2];
results[0] = (-b - Math.sqrt(delta) / 2 * a);
results[1] = (-b + Math.sqrt(delta) / 2 * a);
}
else if (delta == 0)
{
results = new double[1];
results[0] = -b / 2 * a;
}
return results;
}
private double delta(double a, double b, double c)
{
return b*b-4*a*c;
}
}
package com.company;
import java.util.Scanner;
public class QuadricEquation
{
public static void main(String[] args)
{
Scanner raz = new Scanner(System.in);
System.out.println("Podaj wspólczynnik a");
double a = raz.nextDouble();
System.out.println("Podaj współczynnik b");
double b = raz.nextDouble();
System.out.println("Podaj współczynnik c");
double c = raz.nextDouble();
raz.close();
Solver solver = new Solver(a,b,c);
double [] result = solver.solve();
if(result==null)
{
System.out.println("Brak Rozwiązań");
}
else
{
for(double d : result)
{
System.out.println("Rozwiązanie dla x= "+d);
}
}
}
}
package com.company;
import org.junit.Test;
import static org.junit.Assert.*;
public class SolverTest
{
@Test
public void test()
{
Solver solver = new Solver(1,-7,12);
double [] result = solver.solve();
assertEquals(2,result.length);
assertEquals(3,result[0],0.0000001);
assertEquals(4,result[1],0.0000001);
}
}
Ratunku ! :-D