Package slash.navigation.base

Source Code of slash.navigation.base.AppendIT

/*
    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.base;

import slash.navigation.common.NavigationPosition;
import slash.navigation.gopal.GoPalRouteFormat;
import slash.navigation.gopal.GoPalTrackFormat;
import slash.navigation.itn.TomTomRouteFormat;
import slash.navigation.mm.MagicMapsPthFormat;
import slash.navigation.nmea.NmeaFormat;
import slash.navigation.nmn.Nmn4Format;
import slash.navigation.nmn.Nmn5Format;
import slash.navigation.nmn.Nmn6Format;
import slash.navigation.simple.GpsTunerFormat;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static slash.navigation.base.NavigationFormats.asFormat;

public class AppendIT extends NavigationTestCase {
    NavigationFormatParser parser = new NavigationFormatParser();

    static boolean isStoringRouteName(NavigationFormat format) {
        return !(format instanceof GoPalRouteFormat) && !(format instanceof GoPalTrackFormat) &&
                !(format instanceof GpsTunerFormat) && !(format instanceof TomTomRouteFormat) &&
                !(format instanceof NmeaFormat) && !(format instanceof Nmn4Format) &&
                !(format instanceof Nmn5Format) && !(format instanceof Nmn6Format) &&
                !(format instanceof MagicMapsPthFormat);
    }

    void append(String testFileName, String appendFileName) throws IOException {
        File appendFile = new File(appendFileName);
        ParserResult appendResult = parser.read(appendFile);
        assertNotNull(appendResult);
        assertNotNull(appendResult.getTheRoute());
        assertNotNull(appendResult.getFormat());
        assertNotNull(appendResult.getAllRoutes());
        assertTrue(appendResult.getAllRoutes().size() > 0);

        int appendPositionCount = appendResult.getTheRoute().getPositionCount();
        List<BaseNavigationPosition> appendPositions = appendResult.getTheRoute().getPositions();
        assertTrue(appendPositionCount > 0);

        File testFile = new File(testFileName);
        ParserResult testResult = parser.read(testFile);
        assertNotNull(testResult);
        BaseRoute<?, ?> testRoute = testResult.getTheRoute();
        assertNotNull(testRoute);
        NavigationFormat<?> testFormat = testResult.getFormat();
        assertNotNull(testFormat);
        String testName = testResult.getTheRoute().getName();
        List<String> testDescription = testResult.getTheRoute().getDescription();
        int testPositionCount = testResult.getTheRoute().getPositionCount();
        List<NavigationPosition> testPositions = new ArrayList<NavigationPosition>(testResult.getTheRoute().getPositions());
        assertTrue(testPositionCount > 0);

        NavigationFormatParser appendParser = new NavigationFormatParser();
        appendParser.read(appendFile);

        BaseRoute<BaseNavigationPosition, BaseNavigationFormat> appendRoute = asFormat(appendResult.getTheRoute(), testResult.getFormat());
        testResult.getTheRoute().getPositions().addAll(appendRoute.getPositions());

        BaseRoute<BaseNavigationPosition, ?> route = testResult.getTheRoute();
        assertEquals(testRoute, route);
        // since a lot of formats determine route names from the first
        // and the (here changing) last way point name
        if (isStoringRouteName(testFormat))
            assertRouteNameEquals(testName, route.getName());
        assertEquals(testDescription, route.getDescription());
        assertEquals(testPositionCount + appendPositionCount, route.getPositionCount());

        List<BaseNavigationPosition> positions = route.getPositions();
        Class<? extends NavigationPosition> positionClass = testPositions.get(0).getClass();
        for (int i = 0; i < testPositionCount; i++) {
            NavigationPosition position = positions.get(i);
            assertEquals(positionClass, position.getClass());
            assertEquals(testPositions.get(i), position);
        }

        for (int i = testPositionCount; i < testPositionCount + appendPositionCount; i++) {
            NavigationPosition position = positions.get(i);
            assertEquals(positionClass, position.getClass());
            NavigationPosition expected = asFormat(appendPositions.get(i - testPositionCount), route.getFormat());
            assertEquals(expected, position);
        }
    }

    public void testAppendTomTomRouteToMTP0607() throws IOException {
        append(TEST_PATH + "from-mtp0607.bcr", TEST_PATH + "large.itn");
    }

    public void testAppendBcrToKml() throws IOException {
        append(TEST_PATH + "from20.kml", TEST_PATH + "large.bcr");
    }

    public void testAppendKmlToGpx() throws IOException {
        append(TEST_PATH + "large10.gpx", TEST_PATH + "from21.kml");
    }

    public void testAppendGpxToKml() throws IOException {
        append(TEST_PATH + "from20.kml", TEST_PATH + "large11.gpx");
    }

    public void testAppendKmlToTomTomRoute() throws IOException {
        append(TEST_PATH + "large.itn", TEST_PATH + "large20.kml");
    }

    public void testAppendGarminMapSource5ToGarminMapSource6() throws IOException {
        append(TEST_PATH + "from.gdb", TEST_PATH + "from.mps");
    }

    public void testAppendGarminMapSource6ToGarminMapSource5() throws IOException {
        append(TEST_PATH + "from.mps", TEST_PATH + "from.gdb");
    }

    public void testAppendMicrosoftAutoRouteToMagellanMapSend() throws IOException {
        append(TEST_PATH + "from.axe", TEST_PATH + "from-mapsend.wpt");
    }

    public void testAppendGarminMapSource6ToMicrosoftAutoRoute() throws IOException {
        append(TEST_PATH + "from.gdb", TEST_PATH + "from.axe");
    }

    public void testAppendMagellanMapSendToMicrosoftAutoRoute() throws IOException {
        append(TEST_PATH + "from-mapsend.wpt", TEST_PATH + "from.axe");
    }

    public void testAppendTourExchangeToGarminMapSource6() throws IOException {
        append(TEST_PATH + "from.gdb", TEST_PATH + "from.tef");
    }

    public void testAppendGarminPcx5ToNmea() throws IOException {
        append(TEST_PATH + "from.nmea", TEST_PATH + "from-pcx5.wpt");
    }

    public void testAppendNmeaToNmn4() throws IOException {
        append(TEST_PATH + "from.nmea", TEST_PATH + "from-nmn4.rte");
    }

    public void testAppendNmeaToNmn5() throws IOException {
        append(TEST_PATH + "from.nmea", TEST_PATH + "from-nmn5.rte");
    }

    public void testAppendNmeaToNmn6() throws IOException {
        append(TEST_PATH + "from.nmea", TEST_PATH + "from-nmn6.rte");
    }

    public void testAppendNmn4ToNmea() throws IOException {
        append(TEST_PATH + "from-nmn4.rte", TEST_PATH + "from.nmea");
    }

    public void testAppendNmn5ToNmea() throws IOException {
        append(TEST_PATH + "from-nmn5.rte", TEST_PATH + "from.nmea");
    }

    public void testAppendNmn6ToNmea() throws IOException {
        append(TEST_PATH + "from-nmn6.rte", TEST_PATH + "from.nmea");
    }

    public void testAppendTrkToKml() throws IOException {
        append(TEST_PATH + "from21.kml", TEST_PATH + "from-gpstuner.trk");
    }

    // Wgs84Position & subclasses

    public void testAppendWgs84ToWgs84() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from-gpstuner.trk");
    }

    public void testAppendNmeaToWgs84() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from.nmea");
    }

    public void testAppendNmnToWgs84() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from-nmn5.rte");
    }

    public void testAppendWgs84ToNmea() throws IOException {
        append(TEST_PATH + "from.nmea", TEST_PATH + "from-gpstuner.trk");
    }

    public void testAppendWgs84ToNmn() throws IOException {
        append(TEST_PATH + "from-nmn5.rte", TEST_PATH + "from-gpstuner.trk");
    }

    public void testAppendGopalRouteToGopalTrack() throws IOException {
        append(TEST_PATH + "from-gopal3.xml", TEST_PATH + "from-gopal.trk");
        append(TEST_PATH + "from-gopal5.xml", TEST_PATH + "from-gopal.trk");
    }

    public void testAppendGopalTrackToGopalRoute() throws IOException {
        append(TEST_PATH + "from-gopal.trk", TEST_PATH + "from-gopal3.xml");
        append(TEST_PATH + "from-gopal.trk", TEST_PATH + "from-gopal5.xml");
    }

    // GkPosition

    public void testAppendWgs84ToGk() throws IOException {
        append(TEST_PATH + "from.pth", TEST_PATH + "from-gpstuner.trk");
    }

    public void testAppendGkToWgs84() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from.pth");
    }

    public void testAppendGkToNmea() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from.pth");
    }

    public void testAppendGkToNmn() throws IOException {
        append(TEST_PATH + "from-gpstuner.trk", TEST_PATH + "from.pth");
    }

    public void testAppendNmeaToGk() throws IOException {
        append(TEST_PATH + "from.pth", TEST_PATH + "from.nmea");
    }

    public void testAppendNmnToGk() throws IOException {
        append(TEST_PATH + "from.pth", TEST_PATH + "from-nmn4.rte");
    }

    // Wintec formats

    public void testAppendTk1ToTes() throws IOException {
        append(TEST_PATH + "from.tes", TEST_PATH + "from.tk1");
    }

    public void testAppendTesToTk1() throws IOException {
        append(TEST_PATH + "from.tk1", TEST_PATH + "from.tes");
    }

    public void testAppendTesToTk2() throws IOException {
        append(TEST_PATH + "from.tk2", TEST_PATH + "from.tes");
    }
}
TOP

Related Classes of slash.navigation.base.AppendIT

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.