@Test public void testUpdateAltitude() { Engine[] engine = new Engine[2]; GPS gps = new GPS(); final double MAXRPM = 10000; engine[0].turnOn(); engine[1].turnOn(); engine[0] = new Engine(MAXRPM); engine[1] = new Engine(MAXRPM); gps.updateAltitude(20, 200, 100, 0.1); assertEquals(gps.getAltitude(), 0.0, 0.1); gps.updateAltitude(20, 200, 200, 0.1); assertEquals(gps.getAltitude(), 1.90011, 0.1); gps.updateAltitude(40, 400, 200, 0.1); assertEquals(gps.getAltitude(), 9.042196, 0.1); gps.updateAltitude(-30, 200, 100, 0.1); assertEquals(gps.getAltitude(), 6.264418, 0.1); try { gps.updateAltitude(-110, 400, 200, 0.1); fail(); } catch (IllegalArgumentException e) { // Passed, caught the correct error } try { gps.updateAltitude(110, -400, 200, 0.1); fail(); } catch (IllegalArgumentException e) { // Passed, caught the correct error } try { gps.updateAltitude(110, 400, 200, -0.1); fail(); } catch (IllegalArgumentException e) { // Passed, caught the correct error } }