// file: cylinderTestComposition.cpp
// Testing class Cylinder.
#include <iostream>  

using std::cout;
using std::endl;
using std::fixed;

#include <iomanip>

using std::setprecision;

#include "cylinderComposition.h"  // CylinderComposition class definition

int main()
{
   // instantiate CylinderComposition object
   CylinderComposition cylinder( 15.7, 26.8, 2.5, 5.7 ); 

   cout << "\n\nThe parameters of cylinder are\n";
   cylinder.print();

   // display point coordinates
   cout << "\n\nX coordinate is " << cylinder.getX()
				<< "\nY coordinate is " << cylinder.getY()
        << "\nRadius is " << cylinder.getRadius()
        << "\nHeight is " << cylinder.getHeight();

   //set new cylinder parameters
	 cylinder.setX( 2 );          // set new x-coordinate
   cylinder.setY( 2 );          // set new y-coordinate
   cylinder.setRadius( 4.25 );  // set new radius
   cylinder.setHeight( 10 );    // set new height
	 
	 // display new cylinder parameters
   cout << "\n\nThe new parameters of cylinder are\n";
   cylinder.print();

   // display floating-point values with 2 digits of precision
   cout << fixed << setprecision( 2 );

   // display cylinder's diameter
		cout << "\n\nDiameter is " << cylinder.getDiameter();

   // display cylinder's circumference
   cout << "\nCircumference is " << cylinder.getCircumference();

   // display area of cylinder's base
   cout << "\nArea of cylinder's base is " << cylinder.getBaseArea();

   // display cylinder's area
   cout << "\nArea is " << cylinder.getArea();

   // display cylinder's volume
   cout << "\nVolume is " << cylinder.getVolume();

   cout << endl;

   return 0;  // indicates successful termination
   
} // end main

/* to complement the example from Chapter 9, Deitel & Deitel: C++ How to Program. Fourth edition.
 * Prentice Hall, 2003. 
 */