
public class CoordTest {

	public static void main(String[] args) {

		int correct = 0;
		int total = 0;

		//STEP 1 - 4
		Coordinate zero = new Coordinate();
		Coordinate all10 = new Coordinate(10, 10, 10);
		
		//STEP 5: test get methods
		total++;
		if(zero.getX() == 0) {
			System.out.println("getX is correct for zero");
			correct++;
		}
		else {
			//failed
			System.out.println("getX failed for zero");
		}
		
		total++;
		if(all10.getX() == 10) {
			System.out.println("getX is correct for all10");
			correct++;
		}
		else {
			//failed
			System.out.println("getX is correct for all10");
		}
		
		total++;
		if(zero.getY() == 0) {
			System.out.println("getY is correct for zero");
			correct++;
		}
		else {
			//failed
			System.out.println("getY failed for zero");
		}
		
		total++;
		if(all10.getY() == 10) {
			System.out.println("getY is correct for all10");
			correct++;
		}
		else {
			//failed
			System.out.println("getY is correct for all10");
		}
		
		total++;
		if(zero.getZ() == 0) {
			System.out.println("getZ is correct for zero");
			correct++;
		}
		else {
			//failed
			System.out.println("getZ failed for zero");
		}
		
		total++;
		if(all10.getZ() == 10) {
			System.out.println("getZ is correct for all10");
			correct++;
		}
		else {
			//failed
			System.out.println("getZ is correct for all10");
		}
		
		
		
		//STEP 6: test setters
		Coordinate test = new Coordinate(0, 0, 0);
		
		test.setX(5);
		total++;
		if(test.getX() == 5) {
			System.out.println("setX is correct");
			correct++;
		}
		else {
			System.out.println("setX failed");
		}
		
		test.setY(5);
		total++;
		if(test.getY() == 5) {
			System.out.println("setY is correct");
			correct++;
		}
		else {
			System.out.println("setY failed");
		}
		
		test.setZ(5);
		total++;
		if(test.getZ() == 5) {
			System.out.println("setZ is correct");
			correct++;
		}
		else {
			System.out.println("setZ failed");
		}
		
		//STEP 7: test set value:
		test = new Coordinate(0, 0, 0);
		test.setValue(5, 5, 5);
		total++;
		if(test.getX() == 5 && test.getY() == 5 && test.getZ() == 5){
			System.out.println("setValue is correct");
			correct++;
		}
		else {
			//failed
			System.out.println("setValue failed");
		}
		
		//SETP 8: test distance
		Coordinate x10 = new Coordinate(10, 0, 0);
		double error = 0.00000001;
		
		total++;  
		if(Math.abs(zero.distance(x10) - 10) < error) {
			System.out.println("distance 0..10 is correct");
			correct++;
		}
		else {
			System.out.println("distance 0..10 failed.");
		}
		
		total++;
		if(Math.abs(all10.distance(x10) - Math.sqrt(200)) < error) {
			System.out.println("distance 0..10 is correct");
			correct++;
		}
		else {
			System.out.println("distance 0..10 failed.");
		}
		
		//STEP 9: test toString
		total++;
		if(all10.toString().equals("[ 10.00, 10.00, 10.00 ]")) {
			System.out.println("toString is correct");
			correct++;
		}
		else {

			System.out.println("toString failed");
		}
	

		/*	MOVE THIS TO THE NEXT STEP TO TEST THIS ONE*/
		
		System.out.printf("%d out of %d tets passed.\n", correct, total);
	}

}
