/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. */ package org.geotools.temporal.object; import java.util.Calendar; import java.util.Date; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; import org.opengis.temporal.Duration; import org.opengis.temporal.Instant; import org.opengis.temporal.Position; import org.opengis.temporal.TemporalGeometricPrimitive; /** * * @author Mehdi Sidhoum (Geomatys) * * * @source $URL$ */ public class DefaultTemporalGeometricPrimitiveTest { private TemporalGeometricPrimitive temporalGeomericPrimitive1; private TemporalGeometricPrimitive temporalGeomericPrimitive2; private Position position1; private Position position2; private Calendar cal = Calendar.getInstance(); @Before public void setUp() { cal.set(1981, 6, 25); Date date = cal.getTime(); position1 = new DefaultPosition(date); position2 = new DefaultPosition(new Date()); temporalGeomericPrimitive1 = new DefaultInstant(position1); temporalGeomericPrimitive2 = new DefaultInstant(position2); } @After public void tearDown() { position1 = null; position2 = null; temporalGeomericPrimitive1 = null; temporalGeomericPrimitive2 = null; } /** * Test of distance method, of class DefaultTemporalGeometricPrimitive. */ @Test public void testDistance() { TemporalGeometricPrimitive other; //calcul Distance with instant objects cal.set(2000, 0, 1); Position position = new DefaultPosition(cal.getTime()); other = new DefaultInstant(position); Duration result = temporalGeomericPrimitive1.distance(other); assertFalse(temporalGeomericPrimitive2.distance(other).equals(result)); //calcul Distance with instant and period cal.set(2009, 1, 1); Instant i1 = new DefaultInstant(new DefaultPosition(cal.getTime())); cal.set(2012, 1, 1); Instant i2 = new DefaultInstant(new DefaultPosition(cal.getTime())); other = new DefaultPeriod(i1, i2); result = temporalGeomericPrimitive1.distance(other); assertFalse(temporalGeomericPrimitive2.distance(other).equals(result)); //calcul Distance between Period objects temporalGeomericPrimitive1 = new DefaultPeriod(new DefaultInstant(position1), new DefaultInstant(position2)); temporalGeomericPrimitive2 = new DefaultPeriod(i1, new DefaultInstant(position2)); result = temporalGeomericPrimitive1.distance(other); assertTrue(temporalGeomericPrimitive2.distance(other).equals(result)); } /** * Test of length method, of class DefaultTemporalGeometricPrimitive. */ @Test public void testLength() { cal.set(2012, 0, 1); temporalGeomericPrimitive1 = new DefaultPeriod(new DefaultInstant(position1), new DefaultInstant(position2)); temporalGeomericPrimitive2 = new DefaultPeriod(new DefaultInstant(position2), new DefaultInstant(new DefaultPosition(cal.getTime()))); Duration result = temporalGeomericPrimitive1.length(); assertFalse(temporalGeomericPrimitive2.length().equals(result)); } /** * Test comparison of Instants */ @Test public void testCompare() { assertEquals(-1,((DefaultTemporalPrimitive)temporalGeomericPrimitive1).compareTo(temporalGeomericPrimitive2)); assertEquals(0,((DefaultTemporalPrimitive)temporalGeomericPrimitive1).compareTo(temporalGeomericPrimitive1)); assertEquals(0,((DefaultTemporalPrimitive)temporalGeomericPrimitive2).compareTo(temporalGeomericPrimitive2)); } }