// quadTest.cc  P. Conrad CISC181  06S

#include <iostream>
using std::endl;
using std::cout;

#include <cstdlib> // for exit fn prototype

#include <cmath> // for fabs

#include "quadFunctions.h" // user defined header file

bool approxEquals(double a, double b, double tolerance = 0.005)
{
  return ( fabs(a-b) <= tolerance);
}


void testQuadSolver(double a, double b, double c, 
		    double expectedRoot1, 
		    double expectedRoot2)
{
  double actualRoot1 = quadSolve1(a,b,c);
  double actualRoot2 = quadSolve2(a,b,c);

  if ( approxEquals(actualRoot1,expectedRoot1) &&
       approxEquals(actualRoot2,expectedRoot2) )
    cout << "Passed" << endl;
  else
    cout << "Failed" << endl;

}

int main(void)
{
  testQuadSolver(1.0,-1.0,-2.0, 2.0, -1.0  ); 
  testQuadSolver(1.0, 4.0, 4.0, -2.0, -2.0  ); 

  return 0;
}
