mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
all non-UI packages compile
This commit is contained in:
1 parent
545769590f
commit
029d0a05b0
6 files changed
+55
-35
No files matched your search
+15
-5
@@ -20,6 +20,7 @@ import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.SpeedWithBearing;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl;
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
@@ -157,10 +158,12 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
discardIndexResultsStartingWithHowManyRaces[i++] = (Integer) discardingThresholdAsObject;
|
||||
}
|
||||
ThresholdBasedResultDiscardingRule resultDiscardingRule = new ResultDiscardingRuleImpl(discardIndexResultsStartingWithHowManyRaces);
|
||||
// TODO should this be a FlexibleLeaderboard or a RegattaLeaderboard?
|
||||
// TODO should this be a FlexibleLeaderboard or a RegattaLeaderboard? See bug 636
|
||||
LeaderboardImplWithDelayedCarriedPoints result = new LeaderboardImplWithDelayedCarriedPoints(
|
||||
(String) o.get(FieldNames.LEADERBOARD_NAME.name()), scoreCorrection, resultDiscardingRule);
|
||||
BasicDBList dbRaceColumns = (BasicDBList) o.get(FieldNames.LEADERBOARD_COLUMNS.name());
|
||||
// For a FlexibleLeaderboard, fleets are owned by the leaderboard's RaceColumn objects. We need to manage them here:
|
||||
Map<String, Fleet> fleetsByName = new HashMap<String, Fleet>();
|
||||
for (Object dbRaceColumnAsObject : dbRaceColumns) {
|
||||
BasicDBObject dbRaceColumn = (BasicDBObject) dbRaceColumnAsObject;
|
||||
Map<String, RaceIdentifier> raceIdentifiers = loadRaceIdentifiers(dbRaceColumn);
|
||||
@@ -176,12 +179,19 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
}
|
||||
}
|
||||
List<Fleet> fleets = new ArrayList<Fleet>();
|
||||
for (String fleetName : )
|
||||
for (Map.Entry<String, RaceIdentifier> e : raceIdentifiers.entrySet()) {
|
||||
|
||||
for (String fleetName : raceIdentifiers.keySet()) {
|
||||
Fleet fleet = fleetsByName.get(fleetName);
|
||||
if (fleet == null) {
|
||||
fleet = new FleetImpl(fleetName);
|
||||
fleetsByName.put(fleetName, fleet);
|
||||
}
|
||||
fleets.add(fleet);
|
||||
}
|
||||
RaceColumn raceColumn = result.addRaceColumn((String) dbRaceColumn.get(FieldNames.LEADERBOARD_COLUMN_NAME.name()),
|
||||
(Boolean) dbRaceColumn.get(FieldNames.LEADERBOARD_IS_MEDAL_RACE_COLUMN.name()));
|
||||
(Boolean) dbRaceColumn.get(FieldNames.LEADERBOARD_IS_MEDAL_RACE_COLUMN.name()), fleets.toArray(new Fleet[0]));
|
||||
for (Map.Entry<String, RaceIdentifier> e : raceIdentifiers.entrySet()) {
|
||||
raceColumn.setRaceIdentifier(fleetsByName.get(e.getKey()), e.getValue());
|
||||
}
|
||||
}
|
||||
DBObject carriedPoints = (DBObject) o.get(FieldNames.LEADERBOARD_CARRIED_POINTS.name());
|
||||
if (carriedPoints != null) {
|
||||
|
||||
+5
-3
@@ -10,6 +10,7 @@ import java.util.GregorianCalendar;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl;
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
@@ -35,23 +36,24 @@ public class LeaderboardForKielWeekTest extends OnlineTracTracBasedTest {
|
||||
@Test
|
||||
public void leaderboardWithOneRaceTest() throws URISyntaxException, NoWindException, IOException, InterruptedException {
|
||||
leaderboard = new FlexibleLeaderboardImpl("Kiel Week 2011 505s", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(new int[] { 3, 6 }));
|
||||
Fleet defaultFleet = leaderboard.getFleet(null);
|
||||
MillisecondsTimePoint now = MillisecondsTimePoint.now();
|
||||
loadRace("357c700a-9d9a-11e0-85be-406186cbf87c"); // 505 Race 2
|
||||
Competitor hasso = getCompetitorByName("Dr.Plattner");
|
||||
RaceColumn column = leaderboard.addRace(getTrackedRace(), "Test Race 1", /* medalRace */ false);
|
||||
RaceColumn column = leaderboard.addRace(getTrackedRace(), "Test Race 1", /* medalRace */ false, defaultFleet);
|
||||
assertEquals(21, leaderboard.getTotalPoints(hasso, now));
|
||||
Pair<Competitor, RaceColumn> key = new Pair<Competitor, RaceColumn>(hasso, column);
|
||||
assertEquals(21, leaderboard.getContent(now).get(key).getTotalPoints());
|
||||
assertEquals(21, leaderboard.getEntry(hasso, column, now).getTotalPoints());
|
||||
loadRace("e876c3a0-9da8-11e0-85be-406186cbf87c"); // 505 Race 3
|
||||
column = leaderboard.addRace(getTrackedRace(), "Test Race 2", /* medalRace */ false);
|
||||
column = leaderboard.addRace(getTrackedRace(), "Test Race 2", /* medalRace */ false, defaultFleet);
|
||||
key = new Pair<Competitor, RaceColumn>(hasso, column);
|
||||
// In Race 3, Hasso ranked 31st
|
||||
assertEquals(52, leaderboard.getTotalPoints(hasso, now));
|
||||
assertEquals(31, leaderboard.getContent(now).get(key).getTotalPoints());
|
||||
assertEquals(31, leaderboard.getEntry(hasso, column, now).getTotalPoints());
|
||||
loadRace("7c666e50-9dde-11e0-85be-406186cbf87c"); // 505 Race 4
|
||||
column = leaderboard.addRace(getTrackedRace(), "Test Race 3", /* medalRace */ false);
|
||||
column = leaderboard.addRace(getTrackedRace(), "Test Race 3", /* medalRace */ false, defaultFleet);
|
||||
key = new Pair<Competitor, RaceColumn>(hasso, column);
|
||||
// now the second race is discarded because Hasso ranked worst compared to the other two; in race 4 he ranked 11th
|
||||
assertEquals(32, leaderboard.getTotalPoints(hasso, now));
|
||||
|
||||
+16
-12
@@ -15,6 +15,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||
@@ -27,7 +28,7 @@ import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RaceColumn;
|
||||
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
||||
import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl;
|
||||
@@ -98,12 +99,13 @@ public class LeaderboardOfflineTest {
|
||||
|
||||
@Test
|
||||
public void ensureMedalRaceParamIsIgnoredIfRaceColumnAlreadyExists() {
|
||||
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
|
||||
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
|
||||
new int[] { 5, 8 }));
|
||||
Fleet defaultFleet = leaderboard.getFleet(null);
|
||||
final String columnName = "abc";
|
||||
setupRaces(1, 0);
|
||||
leaderboard.addRaceColumn(columnName, /* medalRace */ true);
|
||||
leaderboard.addRace(testRaces.iterator().next(), columnName, /* medalRace */ false);
|
||||
leaderboard.addRace(testRaces.iterator().next(), columnName, /* medalRace */ false, defaultFleet);
|
||||
assertTrue(leaderboard.getRaceColumnByName(columnName).isMedalRace());
|
||||
}
|
||||
|
||||
@@ -120,14 +122,15 @@ public class LeaderboardOfflineTest {
|
||||
testRaces.add(r); // hash set should take care of more or less randomly permuting the races
|
||||
}
|
||||
ScoreCorrectionImpl scoreCorrection = new ScoreCorrectionImpl();
|
||||
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", scoreCorrection, new ResultDiscardingRuleImpl(
|
||||
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", scoreCorrection, new ResultDiscardingRuleImpl(
|
||||
new int[] { 1 }));
|
||||
Fleet defaultFleet = leaderboard.getFleet(null);
|
||||
int i=0;
|
||||
int bestScore = Integer.MAX_VALUE;
|
||||
RaceColumn bestScoringRaceColumn = null;
|
||||
for (TrackedRace race : testRaces) {
|
||||
i++;
|
||||
RaceColumn raceColumn = leaderboard.addRace(race, "Test Race " + i, /* medalRace */ false);
|
||||
RaceColumn raceColumn = leaderboard.addRace(race, "Test Race " + i, /* medalRace */ false, defaultFleet);
|
||||
raceColumnsInLeaderboard.put(race, raceColumn);
|
||||
if (race.getRank(competitor) < bestScore) {
|
||||
bestScore = race.getRank(competitor);
|
||||
@@ -136,7 +139,7 @@ public class LeaderboardOfflineTest {
|
||||
}
|
||||
scoreCorrection.setMaxPointsReason(competitor, bestScoringRaceColumn, MaxPointsReason.DSQ);
|
||||
// assert that best scoring but now disqualified race gets max net points because of disqualification:
|
||||
assertEquals(Util.size(bestScoringRaceColumn.getTrackedRace(fleet).getRace().getCompetitors())+1,
|
||||
assertEquals(Util.size(bestScoringRaceColumn.getTrackedRace(defaultFleet).getRace().getCompetitors())+1,
|
||||
leaderboard.getEntry(competitor, bestScoringRaceColumn, MillisecondsTimePoint.now()).getNetPoints());
|
||||
// now assert that it gets discarded because due to disqualification it scores worse than all others:
|
||||
assertEquals(0, leaderboard.getEntry(competitor, bestScoringRaceColumn, MillisecondsTimePoint.now()).getTotalPoints());
|
||||
@@ -145,13 +148,14 @@ public class LeaderboardOfflineTest {
|
||||
protected void testLeaderboard(int numberOfStartedRaces, int numberOfNotStartedRaces, int firstDiscardingThreshold,
|
||||
int secondDiscardingThreshold, Integer carry, boolean addOneMedalRace, int numberOfUntrackedRaces) throws NoWindException {
|
||||
setupRaces(numberOfStartedRaces, numberOfNotStartedRaces);
|
||||
Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
|
||||
FlexibleLeaderboard leaderboard = new FlexibleLeaderboardImpl("Test Leaderboard", new ScoreCorrectionImpl(), new ResultDiscardingRuleImpl(
|
||||
new int[] { firstDiscardingThreshold, secondDiscardingThreshold }));
|
||||
Fleet defaultFleet = leaderboard.getFleet(null);
|
||||
int i=0;
|
||||
for (TrackedRace race : testRaces) {
|
||||
i++;
|
||||
raceColumnsInLeaderboard.put(race, leaderboard.addRace(race, "Test Race "+i,
|
||||
/* medalRace */ numberOfUntrackedRaces == 0 && addOneMedalRace && i == testRaces.size()));
|
||||
/* medalRace */ numberOfUntrackedRaces == 0 && addOneMedalRace && i == testRaces.size(), defaultFleet));
|
||||
}
|
||||
// add a few race columns not yet connected to a tracked race
|
||||
for (int j=0; j<numberOfUntrackedRaces; j++) {
|
||||
@@ -164,14 +168,14 @@ public class LeaderboardOfflineTest {
|
||||
List<Integer> ranksOfNonMedalStartedRaces = new ArrayList<Integer>();
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
for (RaceColumn column : raceColumnsInLeaderboard.values()) {
|
||||
if (!column.isMedalRace() && column.getTrackedRace(fleet) != null && column.getTrackedRace(fleet).hasStarted(now)) {
|
||||
ranksOfNonMedalStartedRaces.add(column.getTrackedRace(fleet).getRank(competitor, now));
|
||||
if (!column.isMedalRace() && column.getTrackedRace(defaultFleet) != null && column.getTrackedRace(defaultFleet).hasStarted(now)) {
|
||||
ranksOfNonMedalStartedRaces.add(column.getTrackedRace(defaultFleet).getRank(competitor, now));
|
||||
}
|
||||
}
|
||||
Collections.sort(ranksOfNonMedalStartedRaces);
|
||||
int carryInt = (carry == null ? 0 : carry);
|
||||
int totalPoints = carryInt;
|
||||
int medalRacePoints = getMedalRacePoints(competitor, now);
|
||||
int medalRacePoints = getMedalRacePoints(competitor, now, defaultFleet);
|
||||
int numberOfRacesFromWhichToDiscard = ranksOfNonMedalStartedRaces.size();
|
||||
for (TrackedRace race : testRaces) {
|
||||
RaceColumn raceColumn = raceColumnsInLeaderboard.get(race);
|
||||
@@ -207,7 +211,7 @@ public class LeaderboardOfflineTest {
|
||||
assertEquals(totalPoints, leaderboard.getTotalPoints(competitor, now));
|
||||
}
|
||||
|
||||
private int getMedalRacePoints(Competitor competitor, TimePoint at) throws NoWindException {
|
||||
private int getMedalRacePoints(Competitor competitor, TimePoint at, Fleet fleet) throws NoWindException {
|
||||
for (TrackedRace r : testRaces) {
|
||||
if (raceColumnsInLeaderboard.get(r) != null && raceColumnsInLeaderboard.get(r).isMedalRace() &&
|
||||
raceColumnsInLeaderboard.get(r).getTrackedRace(fleet).hasStarted(at)) {
|
||||
|
||||
+4
-3
@@ -27,6 +27,7 @@ public class GwtTestCaseColumnToggling extends GWTTestCase {
|
||||
|
||||
//Test data.
|
||||
private final String LEADERBOARD_NAME = "test";
|
||||
private static final String DEFAULT_FLEET_NAME = "Default";
|
||||
private final String COLUMN1_NAME = "r1";
|
||||
private final String EVENT_NAME = "Sailing Team Germany (STG)";
|
||||
protected static final boolean tractracTunnel = true; // Boolean.valueOf(System.getProperty("tractrac.tunnel", "false"));
|
||||
@@ -131,15 +132,15 @@ public class GwtTestCaseColumnToggling extends GWTTestCase {
|
||||
RaceInLeaderboardDTO race = new RaceInLeaderboardDTO();
|
||||
race.setRaceColumnName(COLUMN1_NAME);
|
||||
race.setMedalRace(false);
|
||||
race.setRaceIdentifier(fleetName, null);
|
||||
leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(race));
|
||||
linkTrackedRace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void linkTrackedRace(){
|
||||
service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, new RegattaNameAndRaceName(EVENT_NAME, TRACKED_RACE),
|
||||
private void linkTrackedRace() {
|
||||
service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, DEFAULT_FLEET_NAME,
|
||||
new RegattaNameAndRaceName(EVENT_NAME, TRACKED_RACE),
|
||||
new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
|
||||
+7
-6
@@ -21,6 +21,7 @@ public class TestColumnSwapping {
|
||||
|
||||
private LeaderboardDTO lb = null;
|
||||
private static final String LEADERBOARDNAME = "test";
|
||||
private static final String DEFAULT_FLEET_NAME = "Default";
|
||||
private SailingServiceImpl service;
|
||||
private LeaderboardDTO leaderboardOriginalDTO;
|
||||
private LeaderboardDTO leaderboardDTO;
|
||||
@@ -49,9 +50,9 @@ public class TestColumnSwapping {
|
||||
try {
|
||||
// get Leaderboard with name and current date
|
||||
leaderboardOriginalDTO = new LeaderboardDTO();
|
||||
leaderboardOriginalDTO.addRace("Race1", fleetName, true, null, null);
|
||||
leaderboardOriginalDTO.addRace("Race3", fleetName, true, null, null);
|
||||
leaderboardOriginalDTO.addRace("Race2", fleetName, true, null, null);
|
||||
leaderboardOriginalDTO.addRace("Race1", DEFAULT_FLEET_NAME, true, null, null);
|
||||
leaderboardOriginalDTO.addRace("Race3", DEFAULT_FLEET_NAME, true, null, null);
|
||||
leaderboardOriginalDTO.addRace("Race2", DEFAULT_FLEET_NAME, true, null, null);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -100,9 +101,9 @@ public class TestColumnSwapping {
|
||||
public void testLeaderBoardDTOMethods() {
|
||||
lb = new LeaderboardDTO();
|
||||
assertNotNull("Leaderboard != NULL", lb);
|
||||
lb.addRace("1", fleetName, false, null, null);
|
||||
lb.addRace("2", fleetName, false, null, null);
|
||||
lb.addRace("3", fleetName, true, null, null);
|
||||
lb.addRace("1", DEFAULT_FLEET_NAME, false, null, null);
|
||||
lb.addRace("2", DEFAULT_FLEET_NAME, false, null, null);
|
||||
lb.addRace("3", DEFAULT_FLEET_NAME, true, null, null);
|
||||
lb.moveRaceDown("1");
|
||||
String[] s = new String[] { "2", "1", "3" };
|
||||
for (int i = 0; i < lb.getRaceList().size(); i++)
|
||||
|
||||
+8
-6
@@ -17,6 +17,7 @@ import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.DefaultLeaderboardName;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
@@ -106,19 +107,20 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
Leaderboard replicaDefaultLeaderboard = replica.getLeaderboardByName(DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME);
|
||||
RaceColumn column = replicaDefaultLeaderboard.getRaceColumnByName(replicaTrackedRace.getRace().getName());
|
||||
assertNotNull(column);
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(fleet));
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(replicaDefaultLeaderboard.getFleet(null)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReassignmentToLeaderboardReplication() throws Exception {
|
||||
final String leaderboardName = "Test Leaderboard";
|
||||
master.apply(new CreateLeaderboard(leaderboardName, new int[0]));
|
||||
Leaderboard masterLeaderboard = master.apply(new CreateLeaderboard(leaderboardName, new int[0]));
|
||||
final String columnName = "R1";
|
||||
RaceColumn masterColumn = master.apply(new AddColumnToLeaderboard(columnName, leaderboardName, /* medalRace */ false));
|
||||
master.apply(new ConnectTrackedRaceToLeaderboardColumn(leaderboardName, columnName, fleet.getName(), new RegattaNameAndRaceName(
|
||||
"Academy Tracking 2011 (STG)", "weym470may122011")));
|
||||
final Fleet defaultFleet = masterLeaderboard.getFleet(null);
|
||||
master.apply(new ConnectTrackedRaceToLeaderboardColumn(leaderboardName, columnName, defaultFleet.getName(),
|
||||
new RegattaNameAndRaceName("Academy Tracking 2011 (STG)", "weym470may122011")));
|
||||
startTracking();
|
||||
assertNotNull(masterColumn.getTrackedRace(fleet)); // ensure the re-assignment worked on the master
|
||||
assertNotNull(masterColumn.getTrackedRace(defaultFleet)); // ensure the re-assignment worked on the master
|
||||
Thread.sleep(1000);
|
||||
TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier);
|
||||
assertNotNull(replicaTrackedRace);
|
||||
@@ -129,7 +131,7 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
assertNotNull(replicaLeaderboard);
|
||||
RaceColumn column = replicaLeaderboard.getRaceColumnByName(columnName);
|
||||
assertNotNull(column);
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(fleet));
|
||||
assertSame(replicaTrackedRace, column.getTrackedRace(defaultFleet));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in new issue
Block a user