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

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