public class TestWeatherSensor
{
    public static void main (String[] args) {
        int count = 1;

		// Test case 1: temps not equal, baroms not equal
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            WeatherSensor ws0 = new WeatherSensor(t0,b0);

            Thermometer t1 = new Thermometer(21);
            Barometer b1 = new Barometer(1001.0);
			WeatherSensor ws1 = new WeatherSensor(t1,b1);
		
			System.out.print("WeatherSensor: Test case 1 ... ");

			if (!ws0.equals(ws1)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 1 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 2: temps equal, baroms equal
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            WeatherSensor ws0 = new WeatherSensor(t0,b0);

            Thermometer t2 = new Thermometer(20);
            Barometer b2 = new Barometer(1000.05);
            WeatherSensor ws2 = new WeatherSensor(t2,b2);

			System.out.print("WeatherSensor: Test case 2 ... ");

			if (ws0.equals(ws2)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 2 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 3: temps not equal, baroms equal
		try {
            Thermometer t1 = new Thermometer(21);
            Barometer b1 = new Barometer(1001.0);
			WeatherSensor ws1 = new WeatherSensor(t1,b1);

            Thermometer t2 = new Thermometer(20);
            Barometer b2 = new Barometer(1000.05);
            WeatherSensor ws2 = new WeatherSensor(t2,b2);

			System.out.print("WeatherSensor: Test case 3 ... ");

			if (!ws1.equals(ws2)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 4 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 4: temps null, baroms null
		try {
			Thermometer t3 = null;
            Barometer b3 = null;
            WeatherSensor ws3 = new WeatherSensor(t3,b3);
            WeatherSensor ws4 = new WeatherSensor(t3,b3);

			System.out.print("WeatherSensor: Test case 4 ... ");

			if (ws3.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 4 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 5: temp,barom not null; temp,barom null
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            WeatherSensor ws0 = new WeatherSensor(t0,b0);

            Thermometer t3 = null;
            Barometer b3 = null;
            WeatherSensor ws4 = new WeatherSensor(t3,b3);

			System.out.print("WeatherSensor: Test case 5 ... ");

			if (!ws0.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 5 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 6: equal, temp null,barom not null; temp null,barom not null
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            Thermometer t3 = null;
            Barometer b3 = null;
            WeatherSensor ws0 = new WeatherSensor(t3,b0);

            WeatherSensor ws4 = new WeatherSensor(t3,b0);

			System.out.print("WeatherSensor: Test case 6 ... ");

			if (ws0.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 6 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 7: equal, temp not null,barom null; temp not null,barom null
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            Thermometer t3 = null;
            Barometer b3 = null;
            WeatherSensor ws0 = new WeatherSensor(t0,b3);

            WeatherSensor ws4 = new WeatherSensor(t0,b3);

			System.out.print("WeatherSensor: Test case 7 ... ");

			if (ws0.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 7 crashed.");
			System.out.println("Error:" + e);
		}

		// Test case 8: not equal, temp not null,barom null; temp not null,barom null
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            Thermometer t3 = new Thermometer(21);
            Barometer b3 = null;
            WeatherSensor ws0 = new WeatherSensor(t0,b3);
            WeatherSensor ws4 = new WeatherSensor(t3,b3);

			System.out.print("WeatherSensor: Test case 8 ... ");

			if (!ws0.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 8 crashed.");
			System.out.println("Error:" + e);
		}


		// Test case 9: not equal, temp null,barom not null; temp null,barom not null
		try {
            Thermometer t0 = new Thermometer(20);
            Barometer b0 = new Barometer(1000.0);
            Thermometer t3 = null;
            Barometer b3 = new Barometer(1001.0);

            WeatherSensor ws0 = new WeatherSensor(t3,b0);
            WeatherSensor ws4 = new WeatherSensor(t3,b3);

			System.out.print("WeatherSensor: Test case 9 ... ");

			if (!ws0.equals(ws4)) {
				System.out.println("passed.");
				count++;
			} else {
				System.out.println("failed.");
			}
		} catch(Exception e) {
			System.out.println("WeatherSensor: Test case 9 crashed.");
			System.out.println("Error:" + e);
		}


        System.exit(count);
    }
}
