You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.7 KiB
100 lines
3.7 KiB
package seng302.Model;
|
|
|
|
import javafx.scene.paint.Color;
|
|
import org.junit.Test;
|
|
import SharedModel.*;
|
|
|
|
import static junit.framework.TestCase.*;
|
|
|
|
/**
|
|
* Created by esa46 on 22/03/17.
|
|
*/
|
|
public class BoatTest {
|
|
|
|
|
|
private GPSCoordinate ORIGIN_COORDS = new GPSCoordinate(0, 0);
|
|
private Boat TEST_BOAT = new Boat("Test", 1, "tt", 1);
|
|
|
|
|
|
@Test
|
|
public void calculateDueNorthAzimuthReturns0() {
|
|
|
|
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() {
|
|
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);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void calculateDueEastAzimuthReturns90() {
|
|
|
|
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);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void calculateDueWestAzimuthReturnsNegative90() {
|
|
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);
|
|
|
|
}
|
|
|
|
@Test
|
|
public void calculateDueNorthHeadingReturns0() {
|
|
|
|
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);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void calculateDueEastHeadingReturns90() {
|
|
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() {
|
|
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() {
|
|
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);
|
|
}
|
|
|
|
|
|
}
|