|
|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|