From 5476c9f4c4d19ac49c8f7b59d800fdb1ec398f99 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Tue, 10 Dec 2019 10:37:43 +0100 Subject: [PATCH] fixed one Expedition test; still one broken test --- .../ExpeditionStartDataTest.java | 10 +++++----- .../impl/ExpeditionCourseInferrer.java | 16 ++++++++-------- .../ExpeditionExtendedDataImporterImpl.java | 17 +++++++++++++---- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/ExpeditionStartDataTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/ExpeditionStartDataTest.java index a2b5f03c380..d984b4cf866 100755 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/ExpeditionStartDataTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/ExpeditionStartDataTest.java @@ -33,11 +33,11 @@ public class ExpeditionStartDataTest { assertNotNull(result); final Set startTimes = new HashSet<>(); Util.addAll(result.getStartTimes(), startTimes); - assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:44:59.481+0200")))); - assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:34:59.260+0200")))); - assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:14:58.819+0200")))); - assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T15:29:59.740+0200")))); - assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:24:58.953+0200")))); + assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:45:00.086+0200")))); + assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:35:40.041+0200")))); + assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:14:59.424+0200")))); + assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T15:30:00.518+0200")))); + assertTrue(startTimes.contains(new MillisecondsTimePoint(TIMEPOINT_FORMATTER.parse("2018-04-28T14:24:59.731+0200")))); assertEquals(34, Util.size(result.getStartLinePortFixes())); assertEquals(34, Util.size(result.getStartLineStarboardFixes())); } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java index 4217873390c..6030c93e7c8 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java @@ -54,13 +54,13 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; */ public class ExpeditionCourseInferrer { private static final Logger logger = Logger.getLogger(ExpeditionCourseInferrer.class.getName()); - private static final String START_LINE_PORT_END_LAT = "Port lat"; - private static final String START_LINE_PORT_END_LON = "Port lon"; - private static final String START_LINE_STARBOARD_END_LAT = "Stbd lat"; - private static final String START_LINE_STARBOARD_END_LON = "Stbd lon"; - private static final String START_LINE_PORT_END_MARK_NAME = "Start P"; - private static final String START_LINE_STARBOARD_END_MARK_NAME = "Start S"; - private static final String START_LINE_CONTROL_POINT_NAME = "Start"; + private static final String START_LINE_PORT_END_LAT = "port lat"; + private static final String START_LINE_PORT_END_LON = "port lon"; + private static final String START_LINE_STARBOARD_END_LAT = "stbd lat"; + private static final String START_LINE_STARBOARD_END_LON = "stbd lon"; + private static final String START_LINE_PORT_END_MARK_NAME = "start p"; + private static final String START_LINE_STARBOARD_END_MARK_NAME = "start s"; + private static final String START_LINE_CONTROL_POINT_NAME = "start"; private final RaceLogTrackingAdapter raceLogTrackingAdapter; @@ -124,7 +124,7 @@ public class ExpeditionCourseInferrer { } private Double getColumnValue(String[] lineContentTokens, Map columnsInFileFromHeader, String columnName) { - return getColumnValue(lineContentTokens, columnsInFileFromHeader.get(columnName)); + return getColumnValue(lineContentTokens, columnsInFileFromHeader.get(columnName.toLowerCase())); } private Double getColumnValue(String[] lineContentTokens, final Integer columnIndex) { diff --git a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java index 51e791417de..df19407b6c5 100755 --- a/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java +++ b/java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/ExpeditionExtendedDataImporterImpl.java @@ -256,10 +256,19 @@ public class ExpeditionExtendedDataImporterImpl extends AbstractDoubleVectorFixI final TimePoint timePoint; final String date; final String dateFormatPattern; - if (columnsInFileFromHeader.containsKey(GPS_TIME_COLUMN) && !lineContentTokens[columnsInFileFromHeader.get(GPS_TIME_COLUMN)].trim().isEmpty()) { - timePoint = getTimePoint(lineContentTokens[columnsInFileFromHeader.get(GPS_TIME_COLUMN)]); - } else if (columnsInFileFromHeader.containsKey(UTC_COLUMN) && !lineContentTokens[columnsInFileFromHeader.get(UTC_COLUMN)].trim().isEmpty()) { - timePoint = getTimePoint(lineContentTokens[columnsInFileFromHeader.get(UTC_COLUMN)]); + final Integer gpsTimeColumnIndex = columnsInFileFromHeader.get(GPS_TIME_COLUMN); + final String time_ExcelEpoch = gpsTimeColumnIndex == null ? null : lineContentTokens[gpsTimeColumnIndex]; + final Integer utcColumnIndex = columnsInFileFromHeader.get(UTC_COLUMN); + final String utc = utcColumnIndex == null ? null : lineContentTokens[utcColumnIndex]; + if (time_ExcelEpoch != null && !time_ExcelEpoch.trim().isEmpty()) { + if (Double.valueOf(time_ExcelEpoch) < 1 && utc != null && + !utc.trim().isEmpty()) { // then it seems to be only the fractional time of the day; try to add UTC day: + timePoint = getTimePoint(""+(Double.valueOf(utc.trim()).intValue()+Double.valueOf(time_ExcelEpoch))); + } else { + timePoint = getTimePoint(time_ExcelEpoch); + } + } else if (utc != null && !utc.trim().isEmpty()) { + timePoint = getTimePoint(lineContentTokens[utcColumnIndex]); } else if (columnsInFileFromHeader.containsKey(DATE_COLUMN_1) && !lineContentTokens[columnsInFileFromHeader.get(DATE_COLUMN_1)].trim().isEmpty() || columnsInFileFromHeader.containsKey(DATE_COLUMN_2) && !lineContentTokens[columnsInFileFromHeader.get(DATE_COLUMN_2)].trim().isEmpty()) { if (columnsInFileFromHeader.containsKey(DATE_COLUMN_1)) {