Merge branch 'master' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into controllerSplit
# Conflicts: # racevisionGame/src/main/java/visualiser/Controllers/HostController.java # racevisionGame/src/main/java/visualiser/Controllers/MainController.java # racevisionGame/src/main/java/visualiser/Controllers/RaceViewController.java # racevisionGame/src/main/java/visualiser/Controllers/StartController.java # racevisionGame/src/main/java/visualiser/Controllers/TitleController.java # racevisionGame/src/main/resources/visualiser/scenes/raceView.fxml # racevisionGame/src/main/resources/visualiser/scenes/titleScreen.fxmlmain
commit
c30391ef23
@ -0,0 +1,66 @@
|
|||||||
|
package visualiser.enums;
|
||||||
|
|
||||||
|
import javafx.scene.input.KeyCode;
|
||||||
|
import network.Messages.BoatAction;
|
||||||
|
import network.Messages.Enums.BoatActionEnum;
|
||||||
|
import visualiser.gameController.Keys.ControlKey;
|
||||||
|
import static visualiser.app.App.keyFactory;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State of which stage the tutorial is currently in
|
||||||
|
*/
|
||||||
|
public enum TutorialState {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for upwind in tutorial
|
||||||
|
*/
|
||||||
|
UPWIND(BoatActionEnum.UPWIND),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for downwind in tutorial
|
||||||
|
*/
|
||||||
|
DOWNWIND(BoatActionEnum.DOWNWIND),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for tacking/gybing in tutorial
|
||||||
|
*/
|
||||||
|
TACKGYBE(BoatActionEnum.TACK_GYBE),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for vmg in tutorial
|
||||||
|
*/
|
||||||
|
VMG(BoatActionEnum.AUTO_PILOT),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for sails-in in tutorial
|
||||||
|
*/
|
||||||
|
SAILSIN(BoatActionEnum.SAILS_IN),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for sails-out in tutorial
|
||||||
|
*/
|
||||||
|
SAILSOUT(BoatActionEnum.SAILS_OUT),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for zoom-in in tutorial
|
||||||
|
*/
|
||||||
|
ZOOMIN(null),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State for zoom-out in tutorial
|
||||||
|
*/
|
||||||
|
ZOOMOUT(null);
|
||||||
|
|
||||||
|
private BoatActionEnum action;
|
||||||
|
|
||||||
|
TutorialState(BoatActionEnum action){
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BoatActionEnum getAction(){
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
|
||||||
|
<BoatConfig>
|
||||||
|
<Boats>
|
||||||
|
|
||||||
|
<!--Mark Boats-->
|
||||||
|
<Boat Type="Mark" BoatName="PRO" SourceID="101" >
|
||||||
|
<GPSposition X= "-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat Type="Mark" BoatName="PIN" SourceID="102" >
|
||||||
|
<GPSposition X= "-64.855242" Y="32.293771" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat Type="Mark" BoatName="FL" SourceID="108" >
|
||||||
|
<GPSposition X= "-64.839291" Y="32.317379" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat Type="Mark" BoatName="FR" SourceID="109" >
|
||||||
|
<GPSposition X= "-64.83626" Y="32.317257" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
|
||||||
|
<!--Participants-->
|
||||||
|
<!--Participants-->
|
||||||
|
<Boat BoatName="Emirates Team New Zealand" HullNum="RG01" ShapeID="0" ShortName="NZL" SourceID="121" StoweName="NZL" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<!--<Boat BoatName="Land Rover BAR" HullNum="RG01" ShapeID="0" ShortName="GBR" SourceID="122" StoweName="GBR" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat BoatName="SoftBank Team Japan" HullNum="RG01" ShapeID="0" ShortName="JPN" SourceID="123" StoweName="JPN" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat BoatName="Groupama Team France" HullNum="RG01" ShapeID="0" ShortName="FRA" SourceID="124" StoweName="FRA" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat BoatName="Artemis Racing" HullNum="RG01" ShapeID="0" ShortName="SWE" SourceID="125" StoweName="SWE" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>
|
||||||
|
<Boat BoatName="ORACLE TEAM USA" HullNum="RG01" ShapeID="0" ShortName="USA" SourceID="126" StoweName="USA" Type="Yacht">
|
||||||
|
<GPSposition X="-64.854304" Y="32.296577" Z="0"/>
|
||||||
|
</Boat>-->
|
||||||
|
</Boats>
|
||||||
|
</BoatConfig>
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<Race>
|
||||||
|
<RaceID>9999</RaceID>
|
||||||
|
<RaceType>FLEET</RaceType>
|
||||||
|
<CreationTimeDate>RACE_CREATION_TIME</CreationTimeDate>
|
||||||
|
<RaceStartTime Postpone="false" Time="RACE_START_TIME"/>
|
||||||
|
<Participants>
|
||||||
|
<!--<Yacht SourceID="121"/>-->
|
||||||
|
</Participants>
|
||||||
|
<CompoundMarkSequence>
|
||||||
|
<Corner SeqID="1" CompoundMarkID="1" Rounding="SP" ZoneSize="3" />
|
||||||
|
<Corner SeqID="2" CompoundMarkID="2" Rounding="SP" ZoneSize="3"/>
|
||||||
|
</CompoundMarkSequence>
|
||||||
|
<Course>
|
||||||
|
<CompoundMark CompoundMarkID="1" Name="Start Line">
|
||||||
|
<Mark SeqId="1" Name="PRO" TargetLat="32.288148" TargetLng="-64.852996" SourceID="101"/>
|
||||||
|
<Mark SeqId="2" Name="PIN" TargetLat="32.290148" TargetLng="-64.854996" SourceID="102"/>
|
||||||
|
</CompoundMark>
|
||||||
|
<CompoundMark CompoundMarkID="2" Name="Finish Line">
|
||||||
|
<Mark Name="FL" SeqId="1" TargetLat="42.315911" TargetLng="-64.846996" SourceID="108"/>
|
||||||
|
<Mark Name="FR" SeqId="2" TargetLat="42.315911" TargetLng="-64.848996" SourceID="109"/>
|
||||||
|
</CompoundMark>
|
||||||
|
</Course>
|
||||||
|
<CourseLimit>
|
||||||
|
|
||||||
|
<Limit Lat="32.317911" Lon="-64.836996" SeqID="1"/>
|
||||||
|
<Limit Lat="32.286148" Lon="-64.836996" SeqID="2"/>
|
||||||
|
<Limit Lat="32.286148" Lon="-64.856996" SeqID="3"/>
|
||||||
|
<Limit Lat="32.317911" Lon="-64.856996" SeqID="4"/>
|
||||||
|
|
||||||
|
<!--<Limit Lat="32.313922" Lon="-64.837168" SeqID="1"/>
|
||||||
|
<Limit Lat="32.317379" Lon="-64.839291" SeqID="2"/>
|
||||||
|
<Limit Lat="32.317911" Lon="-64.836996" SeqID="3"/>
|
||||||
|
<Limit Lat="32.317257" Lon="-64.83626" SeqID="4"/>
|
||||||
|
<Limit Lat="32.304273" Lon="-64.822834" SeqID="5"/>
|
||||||
|
<Limit Lat="32.279097" Lon="-64.841545" SeqID="6"/>
|
||||||
|
<Limit Lat="32.279604" Lon="-64.849871" SeqID="7"/>
|
||||||
|
<Limit Lat="32.289545" Lon="-64.854162" SeqID="8"/>
|
||||||
|
<Limit Lat="32.290198" Lon="-64.858711" SeqID="9"/>
|
||||||
|
<Limit Lat="32.297164" Lon="-64.856394" SeqID="10"/>
|
||||||
|
<Limit Lat="32.296148" Lon="-64.849184" SeqID="11"/>-->
|
||||||
|
</CourseLimit>
|
||||||
|
</Race>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<RegattaConfig>
|
||||||
|
<RegattaID>0</RegattaID>
|
||||||
|
<RegattaName>Race Tutorial</RegattaName>
|
||||||
|
<CourseName>Tutorial</CourseName>
|
||||||
|
<CentralLatitude>-36.82791529</CentralLatitude>
|
||||||
|
<CentralLongitude>174.81218919</CentralLongitude>
|
||||||
|
<CentralAltitude>0.00</CentralAltitude>
|
||||||
|
<UtcOffset>12</UtcOffset>
|
||||||
|
<MagneticVariation>14.1</MagneticVariation>
|
||||||
|
</RegattaConfig>
|
||||||
|
After Width: | Height: | Size: 665 KiB |
@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<Race>
|
||||||
|
|
||||||
|
<RaceID>99999999</RaceID>
|
||||||
|
|
||||||
|
<RaceType>Match</RaceType>
|
||||||
|
|
||||||
|
<CreationTimeDate>2011-08-06T13:25:00-0000</CreationTimeDate>
|
||||||
|
|
||||||
|
<RaceStartTime Time="2011-08-06T13:30:00-0700" Postpone="false"/>
|
||||||
|
|
||||||
|
<Participants>
|
||||||
|
|
||||||
|
<Yacht SourceID="101" Entry="Port"/>
|
||||||
|
|
||||||
|
<Yacht SourceID="108" Entry="Stbd"/>
|
||||||
|
|
||||||
|
</Participants>
|
||||||
|
|
||||||
|
<Course>
|
||||||
|
|
||||||
|
<CompoundMark CompoundMarkID="1" Name="StartLine">
|
||||||
|
|
||||||
|
<Mark SeqID="1" Name="PRO" TargetLat="-36.83" TargetLng="174.83" SourceID="101"/>
|
||||||
|
|
||||||
|
<Mark SeqID="2" Name="PIN" TargetLat="-36.84" TargetLng="174.81" SourceID="102"/>
|
||||||
|
|
||||||
|
</CompoundMark>
|
||||||
|
|
||||||
|
<CompoundMark CompoundMarkID="2" Name="M1">
|
||||||
|
|
||||||
|
<Mark Name="M1" TargetLat="-36.63566590" TargetLng="174.88543944" SourceID="103"/>
|
||||||
|
|
||||||
|
</CompoundMark>
|
||||||
|
|
||||||
|
<CompoundMark CompoundMarkID="3" Name="M2">
|
||||||
|
|
||||||
|
<Mark Name="M2" TargetLat="-36.83" TargetLng="174.80" SourceID="102"/>
|
||||||
|
|
||||||
|
</CompoundMark>
|
||||||
|
|
||||||
|
<CompoundMark CompoundMarkID="4" Name="Gate">
|
||||||
|
|
||||||
|
<Mark SeqID="1" Name="G1" TargetLat="-36.63566590" TargetLng="174.97205159" SourceID="104"/>
|
||||||
|
|
||||||
|
<Mark SeqID="2" Name="G2" TargetLat="-36.64566590" TargetLng="174.98205159" SourceID="105"/>
|
||||||
|
|
||||||
|
</CompoundMark>
|
||||||
|
|
||||||
|
</Course>
|
||||||
|
|
||||||
|
<CompoundMarkSequence>
|
||||||
|
|
||||||
|
<Corner SeqID="1" CompoundMarkID="1" Rounding="SP" ZoneSize="3"/>
|
||||||
|
|
||||||
|
<Corner SeqID="2" CompoundMarkID="2" Rounding="Port" ZoneSize="3"/>
|
||||||
|
|
||||||
|
<Corner SeqID="3" CompoundMarkID="3" Rounding="Stbd" ZoneSize="6"/>
|
||||||
|
|
||||||
|
<Corner SeqID="4" CompoundMarkID="4" Rounding="PS" ZoneSize="6"/>
|
||||||
|
|
||||||
|
<Corner SeqID="5" CompoundMarkID="1" Rounding="SP" ZoneSize="3"/>
|
||||||
|
|
||||||
|
</CompoundMarkSequence>
|
||||||
|
|
||||||
|
<CourseLimit>
|
||||||
|
|
||||||
|
<Limit SeqID="1" Lat="-36.8325" Lon="174.8325"/>
|
||||||
|
|
||||||
|
<Limit SeqID="2" Lat="-36.82883" Lon="174.81983"/>
|
||||||
|
|
||||||
|
<Limit SeqID="3" Lat="-36.82067" Lon="174.81983"/>
|
||||||
|
|
||||||
|
<Limit SeqID="4" Lat="-36.811" Lon="174.8265"/>
|
||||||
|
|
||||||
|
<Limit SeqID="5" Lat="-36.81033" Lon="174.83833"/>
|
||||||
|
|
||||||
|
<Limit SeqID="6" Lat="-36.81533" Lon="174.8525"/>
|
||||||
|
|
||||||
|
<Limit SeqID="7" Lat="-36.81533" Lon="174.86733"/>
|
||||||
|
|
||||||
|
<Limit SeqID="8" Lat="-36.81633" Lon="174.88217"/>
|
||||||
|
|
||||||
|
<Limit SeqID="9" Lat="-36.83383" Lon="174.87117"/>
|
||||||
|
|
||||||
|
<Limit SeqID="10" Lat="-36.83417" Lon="174.84767"/>
|
||||||
|
|
||||||
|
</CourseLimit>
|
||||||
|
|
||||||
|
</Race>
|
||||||
@ -1,47 +0,0 @@
|
|||||||
//package seng302.Mock;
|
|
||||||
//
|
|
||||||
//import org.junit.Before;
|
|
||||||
//import org.junit.Test;
|
|
||||||
//
|
|
||||||
//import java.util.HashMap;
|
|
||||||
//import java.util.Map;
|
|
||||||
//
|
|
||||||
//import static org.junit.Assert.assertEquals;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * Created by jjg64 on 21/04/17.
|
|
||||||
// */
|
|
||||||
//public class BoatsXMLTest {
|
|
||||||
// private BoatXMLReader boatXMLReader;
|
|
||||||
//
|
|
||||||
// @Before
|
|
||||||
// public void setup() {
|
|
||||||
// try {
|
|
||||||
// boatXMLReader = new BoatXMLReader("mockXML/boatXML/boatTest.xml", false);
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// //fail("Cannot find mockXML/raceXML/raceTest.xml in the resources folder");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testInvalidParticipant() {
|
|
||||||
// Map<Integer, StreamedBoat> inputParticipants = new HashMap<>();
|
|
||||||
// inputParticipants.put(420, new StreamedBoat(420));
|
|
||||||
// boatXMLReader.setParticipants(inputParticipants);
|
|
||||||
// boatXMLReader.read();
|
|
||||||
// assertEquals(boatXMLReader.getBoats().size(), 0);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testValidParticipant() {
|
|
||||||
// Map<Integer, StreamedBoat> inputParticipants = new HashMap<>();
|
|
||||||
// inputParticipants.put(101, new StreamedBoat(101));
|
|
||||||
// boatXMLReader.setParticipants(inputParticipants);
|
|
||||||
// boatXMLReader.read();
|
|
||||||
// assertEquals(boatXMLReader.getBoats().size(), 1);
|
|
||||||
// StreamedBoat boat = (StreamedBoat) boatXMLReader.getBoats().get(0);
|
|
||||||
// assertEquals(boat.getSourceID(), 101);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
//package seng302.Mock;
|
|
||||||
//
|
|
||||||
//import org.junit.Test;
|
|
||||||
//import org.xml.sax.SAXException;
|
|
||||||
//
|
|
||||||
//import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
//import java.io.IOException;
|
|
||||||
//import java.text.ParseException;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * Created by jjg64 on 1/05/17.
|
|
||||||
// */
|
|
||||||
//public class FailBoatXMLTest {
|
|
||||||
// private final String path = "mockXML/boatXML/";
|
|
||||||
//
|
|
||||||
// @Test(expected = NumberFormatException.class)
|
|
||||||
// public void invalidSourceID() throws SAXException, ParserConfigurationException, ParseException, IOException {
|
|
||||||
// new BoatXMLReader(path + "invalidSourceID.xml");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test(expected = NullPointerException.class)
|
|
||||||
// public void insufficientInformation() throws SAXException, ParserConfigurationException, ParseException, IOException {
|
|
||||||
// new BoatXMLReader(path + "insufficientInformation.xml");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,345 +0,0 @@
|
|||||||
//package shared.model;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//import mock.model.Polars;
|
|
||||||
//import org.junit.Before;
|
|
||||||
//import org.junit.Ignore;
|
|
||||||
//import org.junit.Test;
|
|
||||||
//import org.mockito.Mockito;
|
|
||||||
//import org.xml.sax.SAXException;
|
|
||||||
//
|
|
||||||
//import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
//import java.io.IOException;
|
|
||||||
//import java.text.ParseException;
|
|
||||||
//import java.util.ArrayList;
|
|
||||||
//
|
|
||||||
//import static org.junit.Assert.*;
|
|
||||||
//import static org.mockito.Mockito.*;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * Created by esa46 on 15/03/17.
|
|
||||||
// */
|
|
||||||
//public class RaceTest{
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// private CompoundMark ORIGIN;
|
|
||||||
//
|
|
||||||
// private CompoundMark THREE_NM_FROM_ORIGIN;
|
|
||||||
//
|
|
||||||
// private CompoundMark FIFTEEN_NM_FROM_ORIGIN;
|
|
||||||
//
|
|
||||||
// private ArrayList<Leg> TEST_LEGS = new ArrayList<>();
|
|
||||||
//
|
|
||||||
// private int START_LEG_DISTANCE = 3;
|
|
||||||
// private int MIDDLE_LEG_DISTANCE = 12;
|
|
||||||
//
|
|
||||||
// private Leg START_LEG;
|
|
||||||
//
|
|
||||||
// private Leg MIDDLE_LEG;
|
|
||||||
//
|
|
||||||
// private Leg FINISH_LEG;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// @Before
|
|
||||||
// public void setUp() {
|
|
||||||
//
|
|
||||||
// ORIGIN = new CompoundMark(
|
|
||||||
// 1,
|
|
||||||
// "origin compound",
|
|
||||||
// new Mark(1, "test origin 1", new GPSCoordinate(0, 0)) );
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// THREE_NM_FROM_ORIGIN = new CompoundMark(
|
|
||||||
// 2,
|
|
||||||
// "3 NM from origin compound",
|
|
||||||
// new Mark(2, "test mark 2", new GPSCoordinate(0.050246769, 0)) );
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// FIFTEEN_NM_FROM_ORIGIN = new CompoundMark(
|
|
||||||
// 3,
|
|
||||||
// "15 NM from origin compound",
|
|
||||||
// new Mark(3, "test mark 3", new GPSCoordinate(0.251233845, 0)) );
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// START_LEG = new Leg("Start", ORIGIN, THREE_NM_FROM_ORIGIN, 0);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// MIDDLE_LEG = new Leg("Middle", THREE_NM_FROM_ORIGIN, FIFTEEN_NM_FROM_ORIGIN, 1);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// FINISH_LEG = new Leg("Finish", FIFTEEN_NM_FROM_ORIGIN, FIFTEEN_NM_FROM_ORIGIN, 2);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// TEST_LEGS.add(START_LEG);
|
|
||||||
// TEST_LEGS.add(MIDDLE_LEG);
|
|
||||||
// TEST_LEGS.add(FINISH_LEG);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void countdownTimerSendsBoatLocations() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// testRace.countdownTimer.handle(1);
|
|
||||||
// verify(mockOutput, atLeast(boatDataSource.getBoats().size())).parseBoatLocation(anyInt(), anyDouble(), anyDouble(), anyDouble(), anyDouble(), anyLong());
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void countdownTimerSendsRaceStatusMessages() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// testRace.countdownTimer.handle(1);
|
|
||||||
// verify(mockOutput, atLeast(1)).parseRaceStatus(any());
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void checkPositionFinishedUpdatesNumberFinishedBoats() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(FINISH_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(1);
|
|
||||||
// testRace.checkPosition(testBoat, 1);
|
|
||||||
//
|
|
||||||
// assertEquals(testRace.getNumberOfActiveBoats(), 0);
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void checkPositionSetFinishedBoatVelocityTo0() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(FINISH_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(1);
|
|
||||||
// testRace.checkPosition(testBoat, 1);
|
|
||||||
//
|
|
||||||
// assertEquals(testBoat.getCurrentSpeed(), 0, 1e-8);
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void checkPositionSetsFinishTime() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(FINISH_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(1);
|
|
||||||
// testRace.checkPosition(testBoat, 1);
|
|
||||||
//
|
|
||||||
// assertEquals(testBoat.getTimeFinished(), 1, 1e-8);
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void checkPositionUnfinishedDoesntUpdateNumberFinishedBoats() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(START_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(START_LEG_DISTANCE);
|
|
||||||
// testRace.checkPosition(testBoat, 1);
|
|
||||||
//
|
|
||||||
// assertEquals(testRace.getNumberOfActiveBoats(), 1);
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void distanceTravelledBeforeUpdatingLegIsRetained() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// RaceDataSource dataSource = new RaceXMLReader("mockXML/raceTest.xml", new BoatXMLReader("mockXML/boatTest.xml", new Polars()));
|
|
||||||
// Race testRace = new Race(dataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(START_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(START_LEG_DISTANCE + 1);
|
|
||||||
// testRace.checkPosition(testBoat, 0);
|
|
||||||
//
|
|
||||||
// assertEquals(testBoat.getDistanceTravelledInLeg(), 1, 1e-7);
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void doNotFinishAnswersYesIf100PercentChance() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
//
|
|
||||||
// testRace.setDnfChance(100);
|
|
||||||
// assertTrue(testRace.doNotFinish());
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void doNotFinishAnswersNoIf0PercentChance() {
|
|
||||||
//
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
// testRace.setDnfChance(0);
|
|
||||||
// assertFalse(testRace.doNotFinish());
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void boatsAreSetToDNF() {
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
// testRace.setDnfChance(100);
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(START_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(START_LEG_DISTANCE + 1);
|
|
||||||
// testRace.checkPosition(testBoat, 1);
|
|
||||||
// assertEquals(testBoat.getCurrentLeg().getName(), "DNF");
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void updatePositionIgnoresFinishedBoats() {
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(FINISH_LEG);
|
|
||||||
// testBoat.setCurrentPosition(ORIGIN.getAverageGPSCoordinate());
|
|
||||||
// testRace.updatePosition(testBoat, 1, 1);
|
|
||||||
// assertEquals(testBoat.getCurrentPosition(), ORIGIN.getAverageGPSCoordinate());
|
|
||||||
//
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void updatePositionChangesBoatPosition() {
|
|
||||||
// try {
|
|
||||||
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
|
|
||||||
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
// testRace.initialiseBoats();
|
|
||||||
// Boat testBoat = testRace.getBoats().get(0);
|
|
||||||
// testBoat.setCurrentLeg(START_LEG);
|
|
||||||
// testBoat.setDistanceTravelledInLeg(START_LEG_DISTANCE - 1);
|
|
||||||
// testBoat.setCurrentPosition(ORIGIN.getAverageGPSCoordinate());
|
|
||||||
// testRace.updatePosition(testBoat, 100, 100);
|
|
||||||
// assertFalse(testBoat.getCurrentPosition() == ORIGIN.getAverageGPSCoordinate());
|
|
||||||
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Ignore
|
|
||||||
// @Test
|
|
||||||
// public void windDirectionCorrectValues(){
|
|
||||||
//// try {
|
|
||||||
//// MockOutput mockOutput = Mockito.mock(MockOutput.class);
|
|
||||||
//// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml");
|
|
||||||
//// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
|
|
||||||
//// Race testRace = new Race(raceDataSource, mockOutput);
|
|
||||||
//// testRace.setChangeWind(1);
|
|
||||||
//// testRace.setWindDir(65535);
|
|
||||||
//// testRace.changeWindDir();
|
|
||||||
//// assertEquals(100, testRace.getWind());
|
|
||||||
//// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
|
|
||||||
//// e.printStackTrace();
|
|
||||||
//// fail();
|
|
||||||
//// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@ -1,100 +0,0 @@
|
|||||||
//package visualiser.model;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//import org.junit.Before;
|
|
||||||
//import org.junit.Test;
|
|
||||||
//import shared.dataInput.RaceXMLReader;
|
|
||||||
//import shared.dataInput.XMLReader;
|
|
||||||
//import shared.exceptions.InvalidRaceDataException;
|
|
||||||
//import shared.model.GPSCoordinate;
|
|
||||||
//
|
|
||||||
//import java.nio.charset.StandardCharsets;
|
|
||||||
//import java.util.List;
|
|
||||||
//
|
|
||||||
//import static org.junit.Assert.assertEquals;
|
|
||||||
//import static org.junit.Assert.fail;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * Tests only work on the current version of mockXML/raceXML/raceTest.xml
|
|
||||||
// */
|
|
||||||
//public class VisualiserRaceTest {
|
|
||||||
// private RaceXMLReader streamedCourseXMLReader;
|
|
||||||
// private List<GPSCoordinate> boundary;
|
|
||||||
//
|
|
||||||
// @Before
|
|
||||||
// public void setup() {
|
|
||||||
// try {
|
|
||||||
// streamedCourseXMLReader = new RaceXMLReader(XMLReader.readXMLFileToString("mockXML/raceXML/raceTest.xml", StandardCharsets.UTF_8));
|
|
||||||
// boundary = streamedCourseXMLReader.getBoundary();
|
|
||||||
// } catch (InvalidRaceDataException e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// fail("Cannot find mockXML/raceXML/raceTest.xml in the resources folder");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testAllBoundaryPointsRead() {
|
|
||||||
// assertEquals(boundary.size(), 10);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testBoundaryPointData() {
|
|
||||||
// // First point
|
|
||||||
// assertEquals(boundary.get(0).getLatitude(), -36.8325, 1e-6);
|
|
||||||
// assertEquals(boundary.get(0).getLongitude(), 174.8325, 1e-6);
|
|
||||||
//
|
|
||||||
// // Last point
|
|
||||||
// assertEquals(boundary.get(boundary.size() - 1).getLatitude(), -36.83417, 1e-6);
|
|
||||||
// assertEquals(boundary.get(boundary.size() - 1).getLongitude(), 174.84767, 1e-6);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testMapEdges() {
|
|
||||||
// double maxLatitude = streamedCourseXMLReader.getMapBottomRight().getLatitude() - streamedCourseXMLReader.getPadding();
|
|
||||||
// double maxLongitude = streamedCourseXMLReader.getMapBottomRight().getLongitude() - streamedCourseXMLReader.getPadding();
|
|
||||||
// double minLatitude = streamedCourseXMLReader.getMapTopLeft().getLatitude() - streamedCourseXMLReader.getPadding();
|
|
||||||
// double minLongitude = streamedCourseXMLReader.getMapTopLeft().getLongitude() - streamedCourseXMLReader.getPadding();
|
|
||||||
//
|
|
||||||
// assertEquals(maxLatitude, -36.81033, 1e-6);
|
|
||||||
// assertEquals(maxLongitude, 174.88217, 1e-6);
|
|
||||||
// assertEquals(minLatitude, -36.83417, 1e-6);
|
|
||||||
// assertEquals(minLongitude, 174.81983, 1e-6);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void testRaceSettings() {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// public void correctLegSequence() {
|
|
||||||
// List<Leg> legs = streamedCourseXMLReader.getLegs();
|
|
||||||
// String[] expectedNames = {
|
|
||||||
// "StartLine",
|
|
||||||
// "M1",
|
|
||||||
// "M2",
|
|
||||||
// "Gate"
|
|
||||||
// };
|
|
||||||
// for(int i = 0; i < legs.size(); i++) {
|
|
||||||
// assertEquals(expectedNames[i], legs.get(i).getName());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * raceTest.xml is not compliant with this test. Markers are positioned far out of bounds.
|
|
||||||
// */
|
|
||||||
// @Test
|
|
||||||
// @Ignore
|
|
||||||
// public void markersWithinRaceBoundaries() {
|
|
||||||
// GPSCoordinate topLeft = streamedCourseXMLReader.getMapTopLeft();
|
|
||||||
// GPSCoordinate bottomRight = streamedCourseXMLReader.getMapBottomRight();
|
|
||||||
//
|
|
||||||
// for(Marker compoundMark : streamedCourseXMLReader.getMarkers()) {
|
|
||||||
// GPSCoordinate centre = compoundMark.getAverageGPSCoordinate();
|
|
||||||
// assertTrue(centre.getLatitude() < bottomRight.getLatitude());
|
|
||||||
// assertTrue(centre.getLatitude() > topLeft.getLatitude());
|
|
||||||
// assertTrue(centre.getLongitude() > bottomRight.getLongitude());
|
|
||||||
// assertTrue(centre.getLongitude() < topLeft.getLongitude());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
Loading…
Reference in new issue