/* * Copyright (C) 2014 Alec Dhuse * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package co.foldingmap.map.vector; import co.foldingmap.map.vector.Coordinate; import java.awt.geom.Point2D; import java.util.GregorianCalendar; import java.util.SimpleTimeZone; import static org.junit.Assert.assertEquals; import org.junit.*; /** * * @author Alec */ public class CoordinateTest { public CoordinateTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { } @After public void tearDown() { } /** * Test of copy method, of class Coordinate. */ @Test public void testCopy() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); Coordinate result = instance.copy(); assertEquals(instance.getAltitude(), result.getAltitude(), 0); assertEquals(instance.getLatitude(), result.getLatitude(), 0); assertEquals(instance.getLongitude(), result.getLongitude(), 0); } /** * Test of equals method, of class Coordinate. */ @Test public void testEquals() { Coordinate coordinateToCompair = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceFalse = new Coordinate(2000f, 5.11f, 10.52f); Coordinate instanceTrue = new Coordinate(1000f, 5.14f, 10.52f); boolean resultFalse = instanceFalse.equals(coordinateToCompair); boolean resultTrue = instanceTrue.equals(coordinateToCompair); assertEquals(false, resultFalse); assertEquals(true, resultTrue); } /** * Test of getAltitude method, of class Coordinate. */ @Test public void testGetAltitude() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); double expResult = 1000.0; double result = instance.getAltitude(); assertEquals(expResult, result, 0.0); } /** * Test of getAsPoint2D method, of class Coordinate. */ @Test public void testGetAsPoint2D() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); Point2D expResult = new Point2D.Float(10.52f, 5.14f); Point2D result = instance.getAsPoint2D(); assertEquals(expResult, result); } /** * Test of getDate method, of class Coordinate. */ @Test public void testGetDate() { Coordinate instance = new Coordinate(10f, 5.14f, 10.52f, "2010-03-27T14:31:00Z"); GregorianCalendar calendar = new GregorianCalendar(); calendar.setTimeZone(new SimpleTimeZone(0, "Z")); calendar.set(2010, 2, 27, 14, 31, 0); long expResult = calendar.getTimeInMillis(); long result = instance.getDate(); assertEquals(expResult, result, 10); } /** * Test of getLatitude method, of class Coordinate. */ @Test public void testGetLatitude() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); float expResult = 5.14f; double result = instance.getLatitude(); assertEquals(expResult, result, 0.001); } /** * Test of getLatitudeInDecimal method, of class Coordinate. */ @Test public void testGetLatitudeInDecimal() { float latitude = 0.089f; float expResult = 5.099324703216553f; double result = Coordinate.getLatitudeInDecimal(latitude); assertEquals(expResult, result, 0.0001); } /** * Test of getLatitudeInRadians method, of class Coordinate. */ @Test public void testGetLatitudeInRadians_float() { float latitude = 5.14f; float expResult = 0.08970992355249f; double result = Coordinate.getLatitudeInRadians(latitude); assertEquals(expResult, result, 0.0000001); } /** * Test of getLatitudeInRadians method, of class Coordinate. */ @Test public void testGetLatitudeInRadians_0args() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); float expResult = 0.08970992355249f; double result = instance.getLatitudeInRadians(); assertEquals(expResult, result, 0.000001); } /** * Test of getLongitude method, of class Coordinate. */ @Test public void testGetLongitude() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); float expResult = 10.52f; double result = instance.getLongitude(); assertEquals(expResult, result, 0.0); } /** * Test of getLongitudeInDecimal method, of class Coordinate. */ @Test public void testGetLongitudeInDecimal() { float latitude = 0.089f; float expResult = 5.099324524980204f; double result = Coordinate.getLatitudeInDecimal(latitude); assertEquals(expResult, result, 0.000001); } /** * Test of getLongitudeInRadians method, of class Coordinate. */ @Test public void testGetLongitudeInRadians_float() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); float expResult = 10.52f; double result = instance.getLongitude(); assertEquals(expResult, result, 0.000001); } /** * Test of getLongitudeInRadians method, of class Coordinate. */ @Test public void testGetLongitudeInRadians_0args() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); float expResult = 0.18360865116119385f; double result = instance.getLongitudeInRadians(); assertEquals(expResult, result, 0.0000001); } /** * Test of getTimestamp method, of class Coordinate. */ @Test public void testGetTimestamp() { System.out.println("getTimestamp"); Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f, "2010-09-15T16:08:04Z"); String expResult = "2010-09-15T16:08:04Z"; String result = instance.getTimestamp(); assertEquals(expResult, result); } /** * Test of isEastOf method, of class Coordinate. */ @Test public void testIsEastOf() { System.out.println("isEastOf"); Coordinate c = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceFalse = new Coordinate(1000f, 5.14f, 10.00f); Coordinate instanceTrue = new Coordinate(1000f, 5.14f, 11.00f); boolean resultFalse = instanceFalse.isEastOf(c); boolean resultTrue = instanceTrue.isEastOf(c); assertEquals(false, resultFalse); assertEquals(true, resultTrue); } /** * Test of isLatitudeValid method, of class Coordinate. */ @Test public void testIsLatitudeValid_String() { System.out.println("isLatitudeValid_String"); boolean resultFalse1 = Coordinate.isLatitudeValid("91"); boolean resultFalse2 = Coordinate.isLatitudeValid("-91"); boolean resultTrue = Coordinate.isLatitudeValid("5.14"); assertEquals(false, resultFalse1); assertEquals(false, resultFalse2); assertEquals(true, resultTrue); } /** * Test of isLatitudeValid method, of class Coordinate. */ @Test public void testIsLatitudeValid_float() { boolean resultFalse1 = Coordinate.isLatitudeValid(91); boolean resultFalse2 = Coordinate.isLatitudeValid(-91); boolean resultTrue = Coordinate.isLatitudeValid(5.14f); assertEquals(false, resultFalse1); assertEquals(false, resultFalse2); assertEquals(true, resultTrue); } /** * Test of isLongitudeValid method, of class Coordinate. */ @Test public void testIsLongitudeValid_String() { boolean resultFalse1 = Coordinate.isLongitudeValid("181"); boolean resultFalse2 = Coordinate.isLongitudeValid("-181"); boolean resultTrue = Coordinate.isLongitudeValid("10.52"); assertEquals(false, resultFalse1); assertEquals(false, resultFalse2); assertEquals(true, resultTrue); } /** * Test of isLongitudeValid method, of class Coordinate. */ @Test public void testIsLongitudeValid_float() { boolean resultFalse1 = Coordinate.isLongitudeValid(181); boolean resultFalse2 = Coordinate.isLongitudeValid(-181); boolean resultTrue = Coordinate.isLongitudeValid(10.52f); assertEquals(false, resultFalse1); assertEquals(false, resultFalse2); assertEquals(true, resultTrue); } /** * Test of isNorthOf method, of class Coordinate. */ @Test public void testIsNorthOf() { Coordinate c = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceFalse = new Coordinate(1000f, 3.14f, 10.52f); Coordinate instanceTrue = new Coordinate(1000f, 6.14f, 10.52f); boolean resultFalse = instanceFalse.isNorthOf(c); boolean resultTrue = instanceTrue.isNorthOf(c); assertEquals(false, resultFalse); assertEquals(true , resultTrue); } /** * Test of isShared method, of class Coordinate. */ @Test public void testIsShared() { Coordinate instanceFalse = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceTrue = new Coordinate(1000f, 5.14f, 10.52f); instanceFalse.setShared(false); instanceTrue.setShared(true); boolean resultFalse = instanceFalse.isShared(); boolean resultTrue = instanceTrue.isShared(); assertEquals(false, resultFalse); assertEquals(true, resultTrue); } /** * Test of isSouthOf method, of class Coordinate. */ @Test public void testIsSouthOf() { Coordinate c = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceFalse = new Coordinate(1000f, 6.14f, 10.52f); Coordinate instanceTrue1 = new Coordinate(1000f, 1.14f, 10.52f); Coordinate instanceTrue2 = new Coordinate(1000f, -3.14f, 10.52f); boolean resultFalse = instanceFalse.isSouthOf(c); boolean resultTrue1 = instanceTrue1.isSouthOf(c); boolean resultTrue2 = instanceTrue2.isSouthOf(c); assertEquals(false, resultFalse); assertEquals(true, resultTrue1); assertEquals(true, resultTrue2); } /** * Test of isWestOf method, of class Coordinate. */ @Test public void testIsWestOf() { Coordinate c = new Coordinate(1000f, 5.14f, 10.52f); Coordinate instanceFalse = new Coordinate(1000f, 5.14f, 15.52f); Coordinate instanceTrue1 = new Coordinate(1000f, 5.14f, 9.52f); Coordinate instanceTrue2 = new Coordinate(1000f, 5.14f, -9.52f); boolean resultFalse = instanceFalse.isWestOf(c, 90); boolean resultTrue1 = instanceTrue1.isWestOf(c, 90); boolean resultTrue2 = instanceTrue2.isWestOf(c, 90); assertEquals(false, resultFalse); assertEquals(true, resultTrue1); assertEquals(true, resultTrue2); } /** * Test of reckonCoordinate method, of class Coordinate. */ @Test public void testReckonCoordinate() { double distance = 2.0; double azimuth = 45.0; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); Coordinate expResult = new Coordinate(1000f, 5.152718201039167f, 10.532771f); Coordinate result = instance.reckonCoordinate(distance, azimuth); assertEquals(true, expResult.equals(result)); } /** * Test of setAltitude method, of class Coordinate. */ @Test public void testSetAltitude() { float newAltitude = 1000.0f; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); instance.setAltitude(newAltitude); assertEquals(newAltitude, instance.getAltitude(), 0); } /** * Test of setLatitude method, of class Coordinate. */ @Test public void testSetLatitude() { float newLatitude = 6.1f; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); instance.setLatitude(newLatitude); assertEquals(newLatitude, instance.getLatitude(), 0); } /** * Test of setLongitude method, of class Coordinate. */ @Test public void testSetLongitude() { float newLongitude = 11.1f; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); instance.setLongitude(newLongitude); assertEquals(newLongitude, instance.getLongitude(), 0); } /** * Test of setShared method, of class Coordinate. */ @Test public void testSetShared() { boolean s = true; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f); instance.setShared(s); assertEquals(s, instance.isShared()); } /** * Test of setTimestamp method, of class Coordinate. */ @Test public void testSetTimestamp() { String newTimestamp = "2010-11-15T16:08:04Z"; Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f, "2010-11-15T16:08:04Z"); instance.setTimestamp(newTimestamp); assertEquals(newTimestamp, instance.getTimestamp()); } /** * Test of toString method, of class Coordinate. */ @Test public void testToString() { Coordinate instance = new Coordinate(1000f, 5.14f, 10.52f, "2010-09-15T16:08:04Z"); String expResult = "10.52,5.14,1000,2010-09-15T16:08:04Z"; String result = instance.toString(); assertEquals(expResult, result); } }