// An example testfile

#include <iostream>
#include "PointPair.h"
#include "Point.h"

int main()
{

    // Verify all Point constructors and assignments
    Point a(1,1);
    Point b(4,4);
    Point c(10,10);
    Point d;

    Point x(a);
    Point y = b;
    Point z;
    z = c;

    // Verify all PointPair constructors and assignments
    PointPair origin;
    PointPair ab(a,b);
    PointPair temp1(origin);
    PointPair temp2 = ab;
    PointPair dd;

    // Verify input overloading
    cout << "d = "<< endl;
    cin >> d;
    cout << "dd = " << endl;
    cin >> dd;
    
    cout << "Points have been created" << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;
    cout << "x = " << x << endl;
    cout << "y = " << y << endl;
    cout << "z = " << z << endl;
    cout << "d = " << d << endl;
    cout << "origin = " << origin << endl;
    cout << "ab = " << ab << endl;
    cout << "temp1 = " << temp1 << endl;
    cout << "temp2 = " << temp2 << endl;
    cout << "dd = " << dd << endl;

    // Verify Distance functions
    cout << "Distance Verifications..." << endl;
    cout << "Dist a, b = " << a.distance(b) << endl;
    cout << "Dist a, x = " << a.distance(x) << endl;
    cout << "Dist ab = " << ab.distance() << endl;

    // Veryify set commands
    cout << "Reset points a, b" << endl;
    a.set(42,42);
    b.set(43,43);

// Verify comparision operator overloading
    cout << "a = b? " << (a==b) << endl;
    cout << "a != b? " << (a!=b) << endl;
    temp1.setPoints(a,b);
    

    cout << "temp1 = temp2? " << (temp1 == temp2) << endl;
    cout << "temp1 != temp2? " << (temp1 != temp2) << endl;
    
    return 0;
}


// Output of this program when Point class members are completed:
// assuming the input given:

//d = 
//5 5
//dd = 
//(7 7) (7 7)
//Points have been created
//a = 1 1
//b = 4 4
//c = 10 10
//x = 1 1
//y = 4 4
//z = 10 10
//d = 5 5
//origin = (0 0)  (1 1)
//ab = (1 1)  (4 4)
//temp1 = (0 0)  (1 1)
//temp2 = (1 1)  (4 4)
//dd = (7 7)  (7 7)
//Distance Verifications...
//Dist a, b = 4.24264
//Dist a, x = 0
//Dist ab = 4.24264
//Reset points a, b
//a = b?0
//a != b?1
//temp1 = temp2? 0
//temp1 != temp2? 1
