public class SampleTestCases { public static void main (String [] args) { SystemManager sm = new SystemManager(); Location b1 = new BikeDeliveryLocation("BikeDepot1"); Location b2 = new BikeDeliveryLocation("BikeDepot2"); Location b3 = new BikeDeliveryLocation("BikeDepot3"); Location t1 = new TruckDepot("TRUCK001"); Location t2 = new TruckDepot("TRUCK002"); Location t3 = new TruckDepot("TRUCK003"); Location t4 = new TruckDepot("TRUCK004"); Location a1 = new Airport("AAA"); Location a2 = new Airport("BBB"); sm.addLocation(b1); sm.addLocation(b2); sm.addLocation(b3); sm.addLocation(t1); sm.addLocation(t2); sm.addLocation(t3); sm.addLocation(t4); sm.addLocation(a1); sm.addLocation(a2); sm.addLeg(new BikeLeg(b1, t3, 1, "MTWRFSU")); sm.addLeg(new BikeLeg(t1, b2, 8, "MTWRFSU")); sm.addLeg(new BikeLeg(b2, t2, 2, "MTWRFSU")); sm.addLeg(new BikeLeg(t4, b3, 2, "MTWRFSU")); sm.addLeg(new TruckLeg(t1, t2, 11, "MTWRFSU")); sm.addLeg(new TruckLeg(t2, a2, 36, "MTWRFSU")); sm.addLeg(new TruckLeg(a2, t4, 42, "MTWRFSU")); sm.addLeg(new TruckLeg(t2, t4, 120, "MTWRFSU")); sm.addLeg(new TruckLeg(t3, a1, 19, "MTWRFSU")); sm.addLeg(new Flight(a1, a2, 221, "MTWRFSU")); // TruckDepot t1 to TruckDepot t4 System.out.println("------- t1 to t4 ----------"); Route rA = sm.findCheapestRoute(sm.findLocation("TRUCK001"), sm.findLocation("TRUCK004"), "M"); System.out.println("\n\nCheapest Route: "); System.out.println(rA); Route rB = sm.findShortestKmRoute(sm.findLocation("TRUCK001"), sm.findLocation("TRUCK004"), "M"); System.out.println("\n\nShortest Route:\n " + rB); System.out.println(""); // BikeDepot 1 to BikeDepot 3 System.out.println("------- b1 to b3 ----------"); Route r1 = sm.findCheapestRoute(sm.findLocation("BikeDepot1"), sm.findLocation("BikeDepot3"),"M"); System.out.println("Cheapest: " + r1); Route r2 = sm.findShortestKmRoute(sm.findLocation("BikeDepot1"), sm.findLocation("BikeDepot3"), "M"); System.out.println("\n\nShortest Route:\n " + r2); // TruckDepot 4 to BikeDepot 1 NOT POSSIBLE System.out.println("------- 4 to 5 ----------"); r1 = sm.findCheapestRoute(sm.findLocation("TRUCK004"), sm.findLocation("BikeDepot1"),"M"); System.out.println("\n\nCheapest: "); System.out.println(r1); r2 = sm.findShortestKmRoute(sm.findLocation("TRUCK004"), sm.findLocation("BikeDepot1"), "M"); System.out.println("\n\nShortest Route:\n " + r2); } // main } /*********************************************************** Solution: *********************************************************** NPP_EXEC: "Java Compile and Run" C:\Program Files\Java\jdk-9.0.1\bin\javac SampleTestCases.java Process started (PID=14792) >>> <<< Process finished (PID=14792). (Exit code 0) C:\Program Files\Java\jdk-9.0.1\bin\java SampleTestCases Process started (PID=17972) >>> ------- t1 to t4 ---------- Cheapest Route: Steps: 3 Distance: 89 Cost: 51.62 Route Start: Origin: TRUCK001 Destination: TRUCK002 Origin: TRUCK002 Destination: BBB Origin: BBB Destination: TRUCK004 Route End. Shortest Route: Steps: 4 Distance: 88 Cost: 55.239999999999995 Route Start: Origin: TRUCK001 Destination: BikeDepot2 Origin: BikeDepot2 Destination: TRUCK002 Origin: TRUCK002 Destination: BBB Origin: BBB Destination: TRUCK004 Route End. ------- b1 to b3 ---------- Cheapest: Steps: 5 Distance: 285 Cost: 89.21 Route Start: Origin: BikeDepot1 Destination: TRUCK003 Origin: TRUCK003 Destination: AAA Origin: AAA Destination: BBB Origin: BBB Destination: TRUCK004 Origin: TRUCK004 Destination: BikeDepot3 Route End. Shortest Route: Steps: 5 Distance: 285 Cost: 89.21 Route Start: Origin: BikeDepot1 Destination: TRUCK003 Origin: TRUCK003 Destination: AAA Origin: AAA Destination: BBB Origin: BBB Destination: TRUCK004 Origin: TRUCK004 Destination: BikeDepot3 Route End. ------- 4 to 5 ---------- Exception in thread "main" java.lang.NullPointerException */