/*
File name: hw10.cpp
Author: Bo Bayles
E-mail address: bmb3h6@umr.edu
Description: This file tests the Poly class and its functions.
*/

#include  "Poly.h"
#include <iostream>
using namespace std;

int main()
{
  Poly p1(6,5), p2(5,4), p3(4,3), p4(3,2), p5(2,1), p6(1,0), p7(32);
      
  cout << "Created p1(6,5): " << p1 << endl
       << "Created p2(5,4): " << p2 << endl
       << "Created p3(4,3): " << p3 << endl
       << "Created p4(3,2): " << p4 << endl
       << "Created p5(2,1): " << p5 << endl
       << "Created p6(1,0): " << p6 << endl
       << "Created p7(32): " << p7 << endl;  

  p3 = p1 + p2 + p3;
  cout << "p3 = p1 + p2 + p3: " << p3 << endl;

  p3 += 2.0;
  p3 = p3 + (Poly)2.0;
  //Cast 2.0 as a Poly so the proper constrctor is called to convert it.

  cout << "p3 + 2.0, p3 += 2.0: " << p3 << endl;

  p3 = p1 - p2;
  p3 -= 2.0;
  cout << "p3 = p1 - p2, p3 -= 2.0: " << p3 << endl;
  
  p3 = ~p3;
  cout << "p3 = ~p3: " << p3 << endl;
  p3 = ~p3;
  cout << "p3 = ~p3: " << p3 << endl;
  
  p4 += p5;
  cout << "p4 += p5: " << p4 << endl;
  
  p5 -= p6;
  cout << "p5 -= p6: " << p5 << endl;  

  p5 = p5 * (Poly)4.0;
  //Cast 4.0 as a Poly
  cout << "p5 = p5 * 4.0: " << p5 << endl;

  p5 *= 4.0;
  cout << "p5 *= 4.0: " << p5 << endl;
  
  cout << "p5(3.0): " << p5(3.0) << endl;
  cout << "p4(2.0): " << p4(2.0) << endl;

  system("PAUSE");
  return 0;
}

