|
|
|
|
@ -13,24 +13,24 @@ public class BoatInRaceTest {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private GPSCoordinate ORIGIN_COORDS = new GPSCoordinate(0, 0);
|
|
|
|
|
private BoatInRace TEST_BOAT = new BoatInRace("Test", 1, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
private SharedModel.BoatInRace TEST_BOAT = new SharedModel.BoatInRace("Test", 1, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueNorthAzimuthReturns0() {
|
|
|
|
|
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateAzimuth(), 0, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueSouthAzimuthReturns180() {
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(-50, 0));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(-50, 0));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateAzimuth(), 180, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
@ -39,9 +39,9 @@ public class BoatInRaceTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueEastAzimuthReturns90() {
|
|
|
|
|
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(0, 50));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(0, 50));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateAzimuth(), 90, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
@ -49,9 +49,9 @@ public class BoatInRaceTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueWestAzimuthReturnsNegative90() {
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(0, -50));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(0, -50));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateAzimuth(), -90, 1e-8);
|
|
|
|
|
|
|
|
|
|
@ -60,9 +60,9 @@ public class BoatInRaceTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueNorthHeadingReturns0() {
|
|
|
|
|
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateHeading(), 0, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
@ -70,37 +70,37 @@ public class BoatInRaceTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueEastHeadingReturns90() {
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(0, 50));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(0, 50));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateHeading(), 90, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueSouthHeadingReturns180() {
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(-50, 0));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(-50, 0));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateHeading(), 180, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void calculateDueWestHeadingReturns270() {
|
|
|
|
|
Marker startMarker = new Marker(ORIGIN_COORDS);
|
|
|
|
|
Marker endMarker = new Marker(new GPSCoordinate(0, -50));
|
|
|
|
|
Leg start = new Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(0, -50));
|
|
|
|
|
SharedModel.Leg start = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
TEST_BOAT.setCurrentLeg(start);
|
|
|
|
|
assertEquals(TEST_BOAT.calculateHeading(), 270, 1e-8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void createNewBoatCratesInstanceOfSuperClass() {
|
|
|
|
|
public void createNewBoatCreatesInstanceOfSuperClass() {
|
|
|
|
|
|
|
|
|
|
BoatInRace testBoat = new BoatInRace("Boat", 20, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
SharedModel.BoatInRace testBoat = new SharedModel.BoatInRace("Boat", 20, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
testBoat.setName("Name can change");
|
|
|
|
|
assertTrue(testBoat instanceof Boat);
|
|
|
|
|
assertTrue(testBoat instanceof SharedModel.Boat);
|
|
|
|
|
assertTrue(testBoat.getCurrentLeg() == null);
|
|
|
|
|
assertTrue(testBoat.getCurrentPosition() == null);
|
|
|
|
|
assertTrue(testBoat.toString().contains("Name can change"));
|
|
|
|
|
@ -115,19 +115,19 @@ public class BoatInRaceTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void getWakeAtProperHeading() throws Exception {
|
|
|
|
|
BoatInRace boat = new BoatInRace("Test", 1, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
SharedModel.BoatInRace boat = new SharedModel.BoatInRace("Test", 1, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
|
|
|
|
|
// 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);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
SharedModel.Leg leg0deg = new SharedModel.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);
|
|
|
|
|
SharedModel.Leg leg180deg = new SharedModel.Leg("Start", startMarker, new SharedModel.Marker(boat.getWake()), 0);
|
|
|
|
|
boat.setCurrentLeg(leg180deg);
|
|
|
|
|
|
|
|
|
|
assertEquals(180, boat.calculateHeading(), 1e-8);
|
|
|
|
|
@ -136,12 +136,12 @@ public class BoatInRaceTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void getWakeProportionalToVelocity() throws Exception {
|
|
|
|
|
BoatInRace boat = new BoatInRace("Test", 10, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
SharedModel.BoatInRace boat = new SharedModel.BoatInRace("Test", 10, Color.ALICEBLUE, "tt", 1);
|
|
|
|
|
|
|
|
|
|
// 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);
|
|
|
|
|
SharedModel.Marker startMarker = new SharedModel.Marker(ORIGIN_COORDS);
|
|
|
|
|
SharedModel.Marker endMarker = new SharedModel.Marker(new GPSCoordinate(50, 0));
|
|
|
|
|
SharedModel.Leg leg0deg = new SharedModel.Leg("Start", startMarker, endMarker, 0);
|
|
|
|
|
boat.setCurrentLeg(leg0deg);
|
|
|
|
|
boat.setCurrentPosition(new GPSCoordinate(0, 0));
|
|
|
|
|
|
|
|
|
|
|