/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wms.map;
import static org.junit.Assert.assertEquals;
import java.awt.Point;
import java.awt.geom.Point2D;
import org.junit.Test;
import com.vividsolutions.jts.geom.Envelope;
public class QuickTileCacheTest {
QuickTileCache cache = new QuickTileCache();
@Test
public void testMetaCoordinates() {
Point orig = new Point(0, 0);
assertEquals(orig, cache.getMetaTileCoordinates(orig));
Point t10 = new Point(1, 0);
assertEquals(orig, cache.getMetaTileCoordinates(t10));
Point t01 = new Point(1, 0);
assertEquals(orig, cache.getMetaTileCoordinates(t01));
Point t33 = new Point(3, 3);
assertEquals(new Point(3, 3), cache.getMetaTileCoordinates(t33));
Point tm1m1 = new Point(-1, -1);
assertEquals(new Point(-3, -3), cache.getMetaTileCoordinates(tm1m1));
Point tm3m3 = new Point(-3, -3);
assertEquals(new Point(-3, -3), cache.getMetaTileCoordinates(tm3m3));
Point tm4m4 = new Point(-4, -4);
assertEquals(new Point(-6, -6), cache.getMetaTileCoordinates(tm4m4));
Point t4m4 = new Point(4, -4);
assertEquals(new Point(3, -6), cache.getMetaTileCoordinates(t4m4));
Point tm44 = new Point(-4, 4);
assertEquals(new Point(-6, 3), cache.getMetaTileCoordinates(tm44));
}
@Test
public void testTileCoordinatesNaturalOrigin() {
Point2D origin = new Point2D.Double(0, 0);
Envelope env = new Envelope(30, 60, 30, 60);
Point tc = cache.getTileCoordinates(env, origin);
assertEquals(new Point(1, 1), tc);
env = new Envelope(-30, 0, -30, 0);
tc = cache.getTileCoordinates(env, origin);
assertEquals(new Point(-1, -1), tc);
}
@Test
public void testInnerTileOffsets() {
Envelope meta = new Envelope(1215736.8585492, 1215744.0245205, 5455471.361398601, 5455478.5273699);
Envelope box1 = new Envelope(1215736.8585492 , 1215739.2472063, 5455476.1387128 , 5455478.5273699);
Envelope box2 = new Envelope(1215739.2472063 , 1215741.6358635, 5455476.1387128 , 5455478.5273699);
assertEquals(new Point(0, 2), cache.getTileOffsetsInMeta(box1, meta));
assertEquals(new Point(1, 2), cache.getTileOffsetsInMeta(box2, meta));
}
}