package org.syzygy.gps;
import junit.framework.TestCase;
public class TestMercatorProjection extends TestCase
{
MercatorProjection projection = new MercatorProjection(256, 21);
public void testGetLongitude()
{
assertEquals(-180, projection.getLongitude(0, 0), 0.01);
assertEquals(0, projection.getLongitude(0.5, 0), 0.01);
assertEquals(180, projection.getLongitude(1, 0), 0.01);
}
public void testGetLatitude()
{
assertEquals(82.74, projection.getLatitude(0, 0), 0.01);
assertEquals(0, projection.getLatitude(0.5, 0), 0.01);
assertEquals(-82.74, projection.getLatitude(1, 0), 0.01);
}
public void testMapLongitude()
{
assertEquals(0, projection.mapLongitude(-180, 0), 0.01);
assertEquals(0.5, projection.mapLongitude(0, 0), 0.01);
assertEquals(1.0, projection.mapLongitude(180, 0), 0.01);
assertEquals(0, projection.mapLongitude(-180, 1), 0.01);
assertEquals(1.0, projection.mapLongitude(0, 1), 0.01);
assertEquals(2.0, projection.mapLongitude(180, 1), 0.01);
}
public void testMapLatitude()
{
assertEquals(0, projection.mapLatitude(90, 0), 0.1);
assertEquals(0.5, projection.mapLatitude(0, 0), 0.01);
assertEquals(1.0, projection.mapLatitude(-90, 0), 0.1);
assertEquals(0, projection.mapLatitude(90, 1), 0.2);
assertEquals(1.0, projection.mapLatitude(0, 1), 0.01);
assertEquals(2.0, projection.mapLatitude(-90, 1), 0.2);
}
public void testLongitudinalDistance()
{
assertEquals(0, projection.getLongitudinalDistance(0, 0), 0.0);
assertEquals(4.008e7, projection.getLongitudinalDistance(0, 360), 5e4);
assertEquals(1.113e5, projection.getLongitudinalDistance(0, 1), 500);
assertEquals(1855, projection.getLongitudinalDistance(0, 1.0 / 60), 5);
assertEquals(1.095e5, projection.getLongitudinalDistance(10, 1), 500);
assertEquals(1.04e5, projection.getLongitudinalDistance(20, 1), 500);
assertEquals(9.6e4, projection.getLongitudinalDistance(30, 1), 500);
assertEquals(8.5e4, projection.getLongitudinalDistance(40, 1), 500);
assertEquals(7.1e4, projection.getLongitudinalDistance(50, 1), 500);
assertEquals(5.6e4, projection.getLongitudinalDistance(60, 1), 500);
}
public void testLatitudinalDistance()
{
assertEquals(0, projection.getLatitudinalDistance(0), 0.0);
assertEquals(1.111e5, projection.getLatitudinalDistance(1), 100.0);
assertEquals(1.111e6, projection.getLatitudinalDistance(10), 1000.0);
assertEquals(2.222e6, projection.getLatitudinalDistance(20), 1e4);
}
}