/* This file is part of RouteConverter. RouteConverter is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. RouteConverter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with RouteConverter; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Copyright (C) 2007 Christian Pesch. All Rights Reserved. */ package slash.navigation.itn; import slash.common.type.CompactCalendar; import slash.navigation.base.NavigationTestCase; import slash.navigation.gpx.GpxPosition; import java.text.DateFormat; public class TripmasterTest extends NavigationTestCase { private void checkTripmaster14Position(TomTomPosition position) { assertEquals("Richtung 316", position.getReason()); assertEquals("Bahrenfeld", position.getCity()); assertEquals(34.0, position.getElevation()); assertEquals(316.0, position.getHeading()); assertEquals(calendar(1970, 1, 1, 11, 32, 26).getTime(), position.getTime().getTime()); } public void testTripmaster14Position() { TomTomPosition position = new TomTomPosition(0, 0, "Richtung 316 - 11:32:26 - 34 m - Bahrenfeld"); checkTripmaster14Position(position); } public void testTripmaster14PositionByConvertingFromOtherFormat() { TomTomPosition position = new TomTomPosition(null, null, null, null, null, "Richtung 316 - 11:32:26 - 34 m - Bahrenfeld"); checkTripmaster14Position(position); } public void testTripmaster18ShortPosition() { TomTomPosition position = new TomTomPosition(0, 0, "09:02:43 - 47.5 m"); assertEquals("Waypoint", position.getReason()); assertEquals(47.5, position.getElevation()); assertEquals(calendar(1970, 1, 1, 9, 2, 43), position.getTime()); } public void testTripmaster25ShortStartPosition() { TomTomPosition position = new TomTomPosition(0, 0, "15:01:20 - Start : 26/02/2010 15:01:20 - 10.2 m"); assertEquals("Start : 26/02/2010 15:01:20", position.getReason()); assertEquals(10.2, position.getElevation()); assertEquals(calendar(2010, 2, 26, 15, 1, 20), position.getTime()); } public void testTripmaster25ShortIntermediatePosition() { TomTomPosition position1 = new TomTomPosition(0, 0, "15:05:00 - Kurs 173 - 10.4 m"); assertEquals("Kurs 173", position1.getReason()); assertEquals(173.0, position1.getHeading()); assertEquals(10.4, position1.getElevation()); assertEquals(calendar(1970, 1, 1, 15, 5, 0), position1.getTime()); TomTomPosition position2 = new TomTomPosition(0, 0, "15:06:20 - Distanz 6 - 11.3 m"); assertEquals("Distanz 6", position2.getReason()); assertEquals(11.3, position2.getElevation()); assertEquals(calendar(1970, 1, 1, 15, 6, 20), position2.getTime()); TomTomPosition position3 = new TomTomPosition(0, 0, "15:08:43 - Dauer 0:07:33 - 23.5 m"); assertEquals("Dauer 0:07:33", position3.getReason()); assertEquals(23.5, position3.getElevation()); assertEquals(calendar(1970, 1, 1, 15, 8, 43), position3.getTime()); } public void testTripmaster25ShortEndPosition() { TomTomPosition position = new TomTomPosition(0, 0, "16:22:22 - Ende : 26/02/2010 16:22:22 - 9.8 m"); assertEquals("Ende : 26/02/2010 16:22:22", position.getReason()); assertEquals(9.8, position.getElevation()); assertEquals(calendar(2010, 2, 26, 16, 22, 22), position.getTime()); } public void testTripmasterMiddlePosition() { TomTomPosition position1 = new TomTomPosition(0, 0, "Start : Noyal-Sur-Vilaine - 23/11/2006 - 08:50:26 - 37.2 m - 0.4 Km"); assertEquals("Start : 23/11/2006 - 08:50:26", position1.getReason()); assertEquals("Noyal-Sur-Vilaine", position1.getCity()); assertEquals(37.2, position1.getElevation()); assertNull(position1.getSpeed()); assertEquals(calendar(2006, 11, 23, 8, 50, 26), position1.getTime()); TomTomPosition position2a = new TomTomPosition(0, 0, "Finish : Cesson-Sévigné - 09:03:23 - 51.9 m - 8.6 Km"); assertEquals("Finish : 09:03:23", position2a.getReason()); assertEquals("Cesson-Sévigné", position2a.getCity()); assertEquals(51.9, position2a.getElevation()); assertNull(position2a.getSpeed()); String actualStr = DateFormat.getDateTimeInstance().format(position2a.getTime().getTime()); CompactCalendar expected = calendar(1970, 1, 1, 9, 3, 23); String expectedStr = DateFormat.getDateTimeInstance().format(expected.getTime()); assertEquals(expectedStr, actualStr); assertEquals(calendar(1970, 1, 1, 9, 3, 23), position2a.getTime()); TomTomPosition position2b = new TomTomPosition(0, 0, "Ende : Herrenberg - 14:03:45 - 437.4 m - 25.5 km"); assertEquals("Ende : 14:03:45", position2b.getReason()); assertEquals("Herrenberg", position2b.getCity()); assertEquals(437.4, position2b.getElevation()); assertNull(position2b.getSpeed()); actualStr = DateFormat.getDateTimeInstance().format(position2b.getTime().getTime()); expected = calendar(1970, 1, 1, 14, 3, 45); expectedStr = DateFormat.getDateTimeInstance().format(expected.getTime()); assertEquals(expectedStr, actualStr); assertEquals(calendar(1970, 1, 1, 14, 3, 45), position2b.getTime()); TomTomPosition position3a = new TomTomPosition(0, 0, "13:39:33 - Distanz 2 : Weil Der Stadt - 408.3 m - 2.0 km - 39 km/h"); assertEquals("Distanz 2", position3a.getReason()); assertEquals("Weil Der Stadt", position3a.getCity()); assertEquals(39.0, position3a.getSpeed()); assertEquals(408.3, position3a.getElevation()); assertEquals(calendar(1970, 1, 1, 13, 39, 33), position3a.getTime()); TomTomPosition position4 = new TomTomPosition(0, 0, "09:01:31 - Cape 125: Cesson-Sévigné - 62.0 m - 7.1 Km"); assertEquals("Cape 125", position4.getReason()); assertEquals("Cesson-Sévigné", position4.getCity()); assertEquals(62.0, position4.getElevation()); assertNull(position4.getSpeed()); assertEquals(calendar(1970, 1, 1, 9, 1, 31), position4.getTime()); TomTomPosition position5 = new TomTomPosition(0, 0, "18:51:45 - Hohenfelde (Hamburg) - 42.0 m - 0.2 Km - 2 Km/h - 5"); assertEquals("Hohenfelde (Hamburg)", position5.getReason()); assertEquals("Hohenfelde (Hamburg)", position5.getCity()); assertEquals(42.0, position5.getElevation()); assertEquals(2.0, position5.getSpeed()); assertEquals(calendar(1970, 1, 1, 18, 51, 45), position5.getTime()); } public void testTripmasterLongIntermediatePosition() { TomTomPosition position1 = new TomTomPosition(0, 0, "18:51:59 - Dur. 0:05:55 : Hohenfelde (Hamburg) - 41.0 m - 0.2 Km - 5 Km/h - 6"); assertEquals("Dur. 0:05:55", position1.getReason()); assertEquals("Hohenfelde (Hamburg)", position1.getCity()); assertEquals(41.0, position1.getElevation()); assertEquals(5.0, position1.getSpeed()); assertEquals(calendar(1970, 1, 1, 18, 51, 59), position1.getTime()); TomTomPosition position2 = new TomTomPosition(0, 0, "08:51:25 - Km 1.4: Acigné - 26.5 m - 1.4 km - 69 Km/h"); assertEquals("Km 1.4", position2.getReason()); assertEquals("Acigné", position2.getCity()); assertEquals(26.5, position2.getElevation()); assertEquals(69.0, position2.getSpeed()); assertEquals(calendar(1970, 1, 1, 8, 51, 25), position2.getTime()); } public void testTripmaster18LongStartPosition() { TomTomPosition position = new TomTomPosition(0, 0, "18:51:36 - Start : 21/07/2007 18:51:36 : Hohenfelde (Hamburg) - 1241.231 m - 0.2 Km - 12 Km/h - 6"); assertEquals("Start : 21/07/2007 18:51:36", position.getReason()); assertEquals("Hohenfelde (Hamburg)", position.getCity()); assertEquals(1241.231, position.getElevation()); assertEquals(12.0, position.getSpeed()); assertEquals(calendar(2007, 7, 21, 18, 51, 36), position.getTime()); } public void testTripmaster22LongStartPosition() { TomTomPosition position = new TomTomPosition(0, 0, "08:45:54 - Start : 04/04/2009 08:45:54 - 12.7 m - 0.0 Km - 5 Km/h - 11"); assertEquals("Start : 04/04/2009 08:45:54", position.getReason()); assertEquals("Start : 04/04/2009 08:45:54", position.getCity()); assertEquals(12.7, position.getElevation()); assertEquals(5.0, position.getSpeed()); assertEquals(calendar(2009, 4, 4, 8, 45, 54), position.getTime()); } public void testTripmaster31StartPosition() { TomTomPosition position1 = new TomTomPosition(0, 0, "10:05:16 - Start : 24/03/2012 10:05:16 - 19.3 m - 0.1 km"); assertEquals("Start : 24/03/2012 10:05:16", position1.getReason()); assertNull(position1.getCity()); assertEquals(19.3, position1.getElevation()); assertNull(position1.getSpeed()); assertEquals(calendar(2012, 3, 24, 10, 5, 16), position1.getTime()); TomTomPosition position2 = new TomTomPosition(0, 0, "08:41:40 - Start : 25/03/2012 08:41:40 - 16.7 m - 0.1 km - 0 Km"); assertEquals("Start : 25/03/2012 08:41:40", position2.getReason()); assertNull(position2.getCity()); assertEquals(16.7, position2.getElevation()); assertNull(position2.getSpeed()); assertEquals(calendar(2012, 3, 25, 8, 41, 40), position2.getTime()); } public void testTripmaster31EndPosition() { TomTomPosition position = new TomTomPosition(0, 0, "18:30:48 - Ende : 24/03/2012 18:30:48 - 25.0 m - 275.5 km"); assertEquals("Ende : 24/03/2012 18:30:48", position.getReason()); assertNull(position.getCity()); assertEquals(25.0, position.getElevation()); assertNull(position.getSpeed()); assertEquals(calendar(2012, 3, 24, 18, 30, 48), position.getTime()); } private void checkTripmasterDescription(String expectedDescription, String expectedReason, String description) { TomTomPosition position = new TomTomPosition(0.0, 0.0, 0.0, null, null, description); assertEquals(expectedReason, position.getReason()); assertEquals(expectedDescription, position.getCity()); assertEquals(expectedDescription, position.getDescription()); } public void testTripmasterShortDescriptions() { checkTripmasterDescription(null, "Waypoint", "13:35:13 - 430.5 m"); checkTripmasterDescription(null, "Waypoint", "23:33:44 - -2.5 m"); } public void testTripmasterMiddleDescriptions() { checkTripmasterDescription("Weil Der Stadt", "Start : 27/12/2006 - 13:35:13", "Start : Weil Der Stadt - 27/12/2006 - 13:35:13 - 430.5 m - 0.0 km"); checkTripmasterDescription("Weil Der Stadt", "Kurs 83", "13:35:50 - Kurs 83 : Weil Der Stadt - 411.4 m - 0.0 km"); checkTripmasterDescription("Weil Der Stadt", "Wpt", "13:36:13 - Wpt : Weil Der Stadt - 408.5 m - 0.1 km"); checkTripmasterDescription("Herrenberg", "Ende : 14:03:45", "Ende : Herrenberg - 14:03:45 - 437.4 m - 25.5 km"); } public void testTripmasterLongDescriptions() { checkTripmasterDescription("Altona-Altstadt", "Start : 31/08/2007 19:57:24", "19:57:24 - Start : 31/08/2007 19:57:24 : Altona-Altstadt - 18.2 m - 0.0 Km - 0 Km/h - 9"); checkTripmasterDescription("Altona-Altstadt", "Dist. 8", "19:57:24 - Dist. 8 : Altona-Altstadt - 25.5 m - 8.0 Km - 50 Km/h - 9"); checkTripmasterDescription("Altona-Altstadt", "Dur. 0:23:18", "19:57:24 - Dur. 0:23:18 : Altona-Altstadt - 25.7 m - 8.3 Km - 50 Km/h - 10"); checkTripmasterDescription("Altona-Altstadt", "Course 327", "19:57:24 - Course 327 : Altona-Altstadt - 27.5 m - 8.4 Km - 25 Km/h - 11"); checkTripmasterDescription("Altona-Altstadt", "Finish : 31/08/2007 20:15:11", "20:15:11 - Finish : 31/08/2007 20:15:11 : Altona-Altstadt - 24.6 m - 10.3 Km - 7 Km/h - 7"); checkTripmasterDescription("Abtsgm\u00fcnd", "Start : 30/09/2007 09:34:55", "09:34:55 - Start : 30/09/2007 09:34:55 : Abtsgm\u00fcnd - 369.2 m - 0.0 km - 0 km/h - 6"); checkTripmasterDescription("Abtsgm\u00fcnd", "Kurs 193", "09:36:43 - Kurs 193 : Abtsgm\u00fcnd - 371.1 m - 0.1 km - 18 km/h - 6"); checkTripmasterDescription("Neuschmiede", "Distanz 2", "09:39:18 - Distanz 2 : Neuschmiede - 379.5 m - 2.0 km - 67 km/h - 6"); checkTripmasterDescription("H\u00fcttlingen DE", "Dauer 0:10:04", "09:44:58 - Dauer 0:10:04 : H\u00fcttlingen DE - 407.8 m - 8.6 km - 71 km/h - 7"); checkTripmasterDescription("Weil Der Stadt", "Kurs 83", "13:35:50 - Kurs 83 : Weil Der Stadt - 411.4 m - 0.0 km - 5 km/h"); checkTripmasterDescription("Weil Der Stadt", "Wpt", "13:36:13 - Wpt : Weil Der Stadt - 408.5 m - 0.1 km - 25 km/h"); checkTripmasterDescription("Acigné", "Cape 155", "08:52:25 - Cape 155 : Acigné - 39.4 m - 2.1 km - 54 Km/h"); } private void checkTripmasterGpxDescription(String expectedDescription, String expectedReason, String description) { GpxPosition position = new GpxPosition(0.0, 0.0, 0.0, null, null, description); assertEquals(expectedReason, position.getReason()); assertEquals(expectedDescription, position.getCity()); assertEquals(expectedDescription, position.getDescription()); } public void testTripmaster14GpxDescriptions() { checkTripmasterGpxDescription("Deven (Gross Plasten)", "Richtung 358", "Richtung 358 - Deven (Gross Plasten)"); checkTripmasterGpxDescription("Gross Gievitz", "Abstand 10", "Abstand 10 - Gross Gievitz"); checkTripmasterGpxDescription("Malchin", "Punkt", "Punkt - Malchin"); } public void testTripmasterGpxDescriptions() { checkTripmasterGpxDescription("Blunk", "Dur. 2:11:13", "Dur. 2:11:13 : Blunk"); checkTripmasterGpxDescription("Blunk", "Dist. 107", "Dist. 107 : Blunk"); checkTripmasterGpxDescription("Blunk", "Course 35", "Course 35 : Blunk"); } }