#ifndef TESTFUNCTIONS_HH
#define TESTFUNCTIONS_HH

#include <cmath>

#include "function.hh"


/**
 * Abgeleitete Klassen fuer die verschiedenen Funktionen.
 */
class F1 : public Function
{
public:
  // Konkrete Implementierung der Methode fuer die erste Funktion
  virtual double evaluate (double x) const
  {
    return x*x - 1;
  }
};

class F2 : public Function
{
public:
  virtual double evaluate (double x) const
  {
    return cos(x) - x;
  }
};

class F3 : public Function
{
public:
  virtual double evaluate (double x) const
  {
    return sin(2*x) * x;
  }
};

class F4 : public Function
{
public:
  virtual double evaluate (double x) const
  {
    return x*x - 2;
  };
};


#endif