/* * Copyright (C) 2008 Steve Ratcliffe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program 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. * * * Author: Steve Ratcliffe * Create date: 10-Jan-2009 */ package func; import java.io.File; import java.io.FileNotFoundException; import java.util.List; import uk.me.parabola.imgfmt.app.Area; import uk.me.parabola.imgfmt.app.map.MapReader; import uk.me.parabola.imgfmt.app.trergn.Point; import uk.me.parabola.imgfmt.app.trergn.Polyline; import uk.me.parabola.imgfmt.fs.DirectoryEntry; import uk.me.parabola.imgfmt.fs.FileSystem; import uk.me.parabola.mkgmap.main.Main; import func.lib.Args; import func.lib.RangeMatcher; import func.lib.TestUtils; import org.junit.Test; import static org.junit.Assert.*; /** * Very simple checks. May go away as more detailed checks are developed. * * @author Steve Ratcliffe */ public class SimpleTest extends Base { /** * A very basic check that the size of all the sections has not changed. * This can be used to make sure that a change that is not expected to * change the output does not do so. * * The sizes will have to be always changed when the output does change * though. */ @Test public void testBasic() throws FileNotFoundException { Main.mainNoSystemExit(Args.TEST_STYLE_ARG, "--preserve-element-order", Args.TEST_RESOURCE_OSM + "uk-test-1.osm.gz"); MapReader mr = new MapReader(Args.DEF_MAP_ID + ".img"); TestUtils.registerFile(mr); //FileSystem fs = ImgFS.openFs(Args.DEF_MAP_ID + ".img"); assertNotNull("file exists", mr); Area bounds = mr.getTreBounds(); Area expBox = new Area(2402404, -11185, 2407064, -6524); assertEquals("bounds of map", expBox, bounds); List<Point> list = mr.pointsForLevel(0, MapReader.WITH_EXT_TYPE_DATA); assertEquals("number of points at level 0", 204, list.size()); List<Polyline> list1 = mr.linesForLevel(0); assertEquals("number of lines at level 0", 3382, list1.size()); } @Test public void testNoSuchFile() { Main.mainNoSystemExit("no-such-file-xyz.osm"); assertFalse("no file generated", new File(Args.DEF_MAP_FILENAME).exists()); } @Test public void testPolish() throws FileNotFoundException { Main.mainNoSystemExit(Args.TEST_STYLE_ARG, Args.TEST_RESOURCE_MP + "test1.mp"); FileSystem fs = openFs(Args.DEF_MAP_FILENAME); assertNotNull("file exists", fs); List<DirectoryEntry> entries = fs.list(); int count = 0; for (DirectoryEntry ent : entries) { String ext = ent.getExt(); int size = ent.getSize(); switch (ext) { case "RGN": count++; System.out.println("RGN size " + size); assertThat("RGN size", size, new RangeMatcher(2704)); break; case "TRE": count++; System.out.println("TRE size " + size); // Size varies depending on svn modified status assertThat("TRE size", size, new RangeMatcher(770, 2)); break; case "LBL": count++; assertEquals("LBL size", 999, size); break; } } assertTrue("enough checks run", count >= 3); } }