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