package se.kodapan.osm.util.slippymap; import junit.framework.TestCase; import java.util.Random; /** * @author kalle * @since 2013-09-21 4:39 PM */ public abstract class SlippyMapTest extends TestCase { protected abstract SlippyMap mapFactory(); public void test() throws Exception { SlippyMap slippyMap = mapFactory(); testTile(slippyMap, 10, 10, 10); Random random = new Random(); for (int i = 0; i < 100; i++) { double latitude = (random.nextDouble() * 180) - 90; double longitude = (random.nextDouble() * 360) - 180; int zoom = random.nextInt(20); testTile(slippyMap, latitude, longitude, zoom); } } private void testTile(SlippyMap slippyMap, double latitude, double longitude, int zoom) { Tile tile = slippyMap.tileFactory(longitude, latitude, zoom); assertTrue("Latitude supposed to be " + tile.getSouthLatitude() + " >= " + latitude + " <= " + tile.getNorthLatitude(), latitude >= tile.getSouthLatitude() && latitude <= tile.getNorthLatitude()); assertTrue("Longitude supposed to be " + tile.getWestLongitude() + " >= " + longitude + " <= " + tile.getEastLongitude(), longitude >= tile.getWestLongitude() && longitude <= tile.getEastLongitude()); } }