From 59807092f131c0a32a67d09404094b6166fb8a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=91=E5=A2=A8=E6=B0=B4=E9=B1=BC?= Date: Thu, 28 Apr 2022 12:06:09 +0800 Subject: [PATCH] Upload files to 'assignment5/Question3' --- assignment5/Question3/StartGrading.java | 126 ++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 assignment5/Question3/StartGrading.java diff --git a/assignment5/Question3/StartGrading.java b/assignment5/Question3/StartGrading.java new file mode 100644 index 0000000..44c9673 --- /dev/null +++ b/assignment5/Question3/StartGrading.java @@ -0,0 +1,126 @@ +//Q3 +public class StartGrading { + public static void testVehicle() { +//The Vehicle class is abstract. We cannot create objects from this class. Therefore, we cannot test anything + } + + public static void testCar() { + // test case for constructors + try { +// exception + Car c1 = new Car(70, 80); + } catch (BadSpeedSetting e) { + System.out.println(e.getMessage().equals("Speed cannot be greater than speed limit!")); + } + try { +// exception + Car c2 = new Car(70, -10); + } catch (BadSpeedSetting e) { + System.out.println(e.getMessage().equals("Speed cannot be negative!")); + } +// test case for accelerate, canFly and getSpeed methods + try { + Car c3 = new Car(100, 80); +// test the canFly method + System.out.println(c3.canFly() == false); + c3.accelerate(10); + System.out.println(c3.getSpeed() == 90); +// test the accelerate with positive amount + c3.accelerate(-20); + System.out.println(c3.getSpeed() == 70); +// test the accelerate with negative amount + c3.accelerate(35); +// exception + } catch (BadSpeedSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (ExceedSpeedLimit e) { + System.out + .println(e.getMessage().equals("Current speed is 70. Accelerate 35 will exceed the speed limit!")); + } catch (NotEnoughSpeed e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } + try { + Car c4 = new Car(100, 80); +// exception + c4.accelerate(-90); + } catch (BadSpeedSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (ExceedSpeedLimit e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (NotEnoughSpeed e) { + System.out.println(e.getMessage().equals("Current speed is " + 80 + ", not enough speed to decelerate!")); + } + } + + public static void testAircraft() { + // test case for constructors + try { + // Exception + Aircraft a1 = new Aircraft(70, 80, 1000); + } catch (BadSpeedSetting e) { + System.out.println(e.getMessage().equals("Speed cannot be greater than speed limit!")); + } catch (BadAltitudeSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } + try { + // exception + Aircraft a2 = new Aircraft(70, -10, 1000); + } catch (BadSpeedSetting e) { + System.out.println(e.getMessage().equals("Speed cannot be negative!")); + } catch (BadAltitudeSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } + try { + // exception + Aircraft a3 = new Aircraft(700, 200, -10); + } catch (BadSpeedSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (BadAltitudeSetting e) { + System.out.println(e.getMessage().equals("Altitude cannot be negative!")); + } + // Test case for accelerate, canFly, getSpeed and getAltitude methods + try { + Aircraft a4 = new Aircraft(700, 200, 100); + // test the getAltitude method + System.out.println(a4.getAltitude() == 100); + // test the canFly method + System.out.println(a4.canFly() == true); + a4.accelerate(100); + System.out.println(a4.getSpeed() == 300); + // test the accelerate with positive amount + a4.accelerate(-200); + System.out.println(a4.getSpeed() == 100); + // test the accelerate with negative amount + // exception + a4.accelerate(650); + } catch (BadSpeedSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (BadAltitudeSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (ExceedSpeedLimit e) { + System.out.println( + e.getMessage().equals("Current speed is 100. Accelerate 650 will exceed the speed limit!")); + } catch (NotEnoughSpeed e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } + try { + Aircraft a5 = new Aircraft(700, 200, 100); + // exception + a5.accelerate(-300); + } catch (BadSpeedSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (BadAltitudeSetting e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (ExceedSpeedLimit e) { + System.out.println("BUG! THIS MUST NEVER HAPPEN!"); + } catch (NotEnoughSpeed e) { + System.out.println(e.getMessage().equals("Current speed is " + 200 + ", not enough speed to decelerate!")); + } + } + + public static void main(String[] args) { + Vehicle.testVehicle(); + Car.testCar(); + Aircraft.testAircraft(); + } +}