From 0e7d210cea7701c465a42234668c01e896179934 Mon Sep 17 00:00:00 2001 From: Erika Savell Date: Wed, 29 Mar 2017 22:02:24 +1300 Subject: [PATCH] Amended wake tests to handle markers instead of direct coordinates #test --- .../java/seng302/Model/BoatInRaceTest.java | 81 ++++++++++--------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/src/test/java/seng302/Model/BoatInRaceTest.java b/src/test/java/seng302/Model/BoatInRaceTest.java index d0a5c3fd..91e1aa3e 100644 --- a/src/test/java/seng302/Model/BoatInRaceTest.java +++ b/src/test/java/seng302/Model/BoatInRaceTest.java @@ -109,49 +109,50 @@ public class BoatInRaceTest { assertTrue(testBoat.getCurrentPosition() == null); assertTrue(testBoat.toString().contains("Name can change")); assertEquals(testBoat.getVelocity(), 20.0); - assertTrue(testBoat.getVelocityProp().toString().contains("20.0")); + assertTrue(testBoat.getVelocityProp().toString().contains("20")); assertTrue(testBoat.getAbbrev().equals("tt")); assertTrue(testBoat.getColour().equals(Color.ALICEBLUE)); assertFalse(testBoat.isFinished()); } -// -// @Test -// public void getWakeAtProperHeading() throws Exception { -// BoatInRace boat = new BoatInRace("Test", 1, Color.ALICEBLUE, "tt"); -// -// // Construct leg of 0 degrees -// GPSCoordinate startPoint = new GPSCoordinate(0, 0); -// GPSCoordinate endPoint = new GPSCoordinate(50, 0); -// Leg leg0deg = new Leg("Start", startPoint, endPoint, 0); -// boat.setCurrentLeg(leg0deg); -// boat.setCurrentPosition(new GPSCoordinate(0,0)); -// -// assertEquals(0, boat.calculateHeading(), 1e-8); -// -// // Construct leg from wake - heading should be 180 degrees -// Leg leg180deg = new Leg("Start", startPoint, boat.getWake(), 0); -// boat.setCurrentLeg(leg180deg); -// -// assertEquals(180, boat.calculateHeading(), 1e-8); -// } -// -// @Test -// public void getWakeProportionalToVelocity() throws Exception { -// BoatInRace boat = new BoatInRace("Test", 10, Color.ALICEBLUE, "tt"); -// -// // Construct leg of 0 degrees at 0 N -// GPSCoordinate startPoint = new GPSCoordinate(0, 0); -// GPSCoordinate endPoint = new GPSCoordinate(50, 0); -// Leg leg0deg = new Leg("Start", startPoint, endPoint, 0); -// boat.setCurrentLeg(leg0deg); -// boat.setCurrentPosition(new GPSCoordinate(0,0)); -// -// // Get latitude of endpoint of wake at 10 kn (longitude is 0) -// double endpointAt10Kn = boat.getWake().getLatitude(); -// -// // Latitude of endpoint at 20 kn should be twice endpoint at 10 kn -// boat.setVelocity(20); -// assertEquals(2*endpointAt10Kn, boat.getWake().getLatitude(), 1e-8); -// } + + @Test + public void getWakeAtProperHeading() throws Exception { + BoatInRace boat = new BoatInRace("Test", 1, Color.ALICEBLUE, "tt"); + + // Construct leg of 0 degrees + Marker startMarker = new Marker(ORIGIN_COORDS); + Marker endMarker = new Marker(new GPSCoordinate(50, 0)); + Leg leg0deg = new Leg("Start", startMarker, endMarker, 0); + boat.setCurrentLeg(leg0deg); + boat.setCurrentPosition(new GPSCoordinate(0, 0)); + + assertEquals(0, boat.calculateHeading(), 1e-8); + + // Construct leg from wake - heading should be 180 degrees + Leg leg180deg = new Leg("Start", startMarker, new Marker(boat.getWake()), 0); + boat.setCurrentLeg(leg180deg); + + assertEquals(180, boat.calculateHeading(), 1e-8); + } + + + @Test + public void getWakeProportionalToVelocity() throws Exception { + BoatInRace boat = new BoatInRace("Test", 10, Color.ALICEBLUE, "tt"); + + // Construct leg of 0 degrees at 0 N + Marker startMarker = new Marker(ORIGIN_COORDS); + Marker endMarker = new Marker(new GPSCoordinate(50, 0)); + Leg leg0deg = new Leg("Start", startMarker, endMarker, 0); + boat.setCurrentLeg(leg0deg); + boat.setCurrentPosition(new GPSCoordinate(0,0)); + + // Get latitude of endpoint of wake at 10 kn (longitude is 0) + double endpointAt10Kn = boat.getWake().getLatitude(); + + // Latitude of endpoint at 20 kn should be twice endpoint at 10 kn + boat.setVelocity(20); + assertEquals(2*endpointAt10Kn, boat.getWake().getLatitude(), 1e-8); + } } \ No newline at end of file