Story70 Merge Request Acceptance criteria: Only the player's boat is present (there are no other boats) and no other course elements are present. Each key function is introduced, and the player given the opportunity to use that (and only) that key, and observe the result. The practice ends when the final key has been taught. At least the up/down, tack/gybe, sails in/out keys must be taught. [manual tests](https://eng-git.canterbury.ac.nz/seng302-2017/team-7/wikis/manual-test:-tutorial-mode) See merge request !40main
commit
0ea647b9fd
@ -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