package org.mapfish.print.map; import org.junit.Test; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class DistanceUnitTest { @Test public void testConvertTo() throws Exception { final double delta = 0.000001; assertEquals(100, DistanceUnit.M.convertTo(1, DistanceUnit.CM), delta); assertEquals(1000, DistanceUnit.M.convertTo(1, DistanceUnit.MM), delta); assertEquals(10, DistanceUnit.CM.convertTo(1000, DistanceUnit.M), delta); assertEquals(10, DistanceUnit.CM.convertTo(1, DistanceUnit.MM), delta); assertEquals(1, DistanceUnit.MM.convertTo(10, DistanceUnit.CM), delta); assertEquals(2.54, DistanceUnit.IN.convertTo(1, DistanceUnit.CM), delta); assertEquals(12, DistanceUnit.FT.convertTo(1, DistanceUnit.IN), delta); assertEquals(1, DistanceUnit.IN.convertTo(12, DistanceUnit.FT), delta); assertEquals(36, DistanceUnit.YD.convertTo(1, DistanceUnit.IN), delta); assertEquals(1, DistanceUnit.IN.convertTo(36, DistanceUnit.YD), delta); assertEquals(1, DistanceUnit.FT.convertTo(3, DistanceUnit.YD), delta); assertEquals(3, DistanceUnit.YD.convertTo(1, DistanceUnit.FT), delta); assertEquals(72.0, DistanceUnit.IN.convertTo(1, DistanceUnit.PX), delta); assertEquals(2834.645669, DistanceUnit.M.convertTo(1, DistanceUnit.PX), delta); assertEquals(72.0, DistanceUnit.IN.convertTo(1, DistanceUnit.PT), delta); assertEquals(1.0, DistanceUnit.PT.convertTo(12, DistanceUnit.PC), delta); assertEquals(12.0, DistanceUnit.PC.convertTo(72, DistanceUnit.IN), delta); assertEquals(111226, DistanceUnit.DEGREES.convertTo(1, DistanceUnit.M), 1); assertEquals(111226, DistanceUnit.MINUTE.convertTo(60, DistanceUnit.M), 1); assertEquals(111226, DistanceUnit.SECOND.convertTo(3600, DistanceUnit.M), 1); assertEquals(1, DistanceUnit.MINUTE.convertTo(60, DistanceUnit.DEGREES), delta); assertEquals(1, DistanceUnit.SECOND.convertTo(60, DistanceUnit.MINUTE), delta); } @Test public void testisSameBaseUnit() throws Exception { assertFalse(DistanceUnit.M.isSameBaseUnit(DistanceUnit.DEGREES)); assertFalse(DistanceUnit.M.isSameBaseUnit(DistanceUnit.FT)); assertFalse(DistanceUnit.FT.isSameBaseUnit(DistanceUnit.DEGREES)); assertFalse(DistanceUnit.FT.isSameBaseUnit(DistanceUnit.M)); assertFalse(DistanceUnit.DEGREES.isSameBaseUnit(DistanceUnit.M)); assertFalse(DistanceUnit.DEGREES.isSameBaseUnit(DistanceUnit.FT)); assertTrue(DistanceUnit.M.isSameBaseUnit(DistanceUnit.CM)); assertTrue(DistanceUnit.M.isSameBaseUnit(DistanceUnit.MM)); assertTrue(DistanceUnit.M.isSameBaseUnit(DistanceUnit.KM)); assertTrue(DistanceUnit.MM.isSameBaseUnit(DistanceUnit.M)); assertTrue(DistanceUnit.MM.isSameBaseUnit(DistanceUnit.CM)); assertTrue(DistanceUnit.MM.isSameBaseUnit(DistanceUnit.KM)); assertTrue(DistanceUnit.CM.isSameBaseUnit(DistanceUnit.M)); assertTrue(DistanceUnit.CM.isSameBaseUnit(DistanceUnit.MM)); assertTrue(DistanceUnit.CM.isSameBaseUnit(DistanceUnit.KM)); assertTrue(DistanceUnit.FT.isSameBaseUnit(DistanceUnit.IN)); assertTrue(DistanceUnit.FT.isSameBaseUnit(DistanceUnit.YD)); assertTrue(DistanceUnit.FT.isSameBaseUnit(DistanceUnit.MI)); assertTrue(DistanceUnit.IN.isSameBaseUnit(DistanceUnit.FT)); assertTrue(DistanceUnit.IN.isSameBaseUnit(DistanceUnit.YD)); assertTrue(DistanceUnit.IN.isSameBaseUnit(DistanceUnit.MI)); assertTrue(DistanceUnit.YD.isSameBaseUnit(DistanceUnit.IN)); assertTrue(DistanceUnit.YD.isSameBaseUnit(DistanceUnit.FT)); assertTrue(DistanceUnit.YD.isSameBaseUnit(DistanceUnit.MI)); assertTrue(DistanceUnit.DEGREES.isSameBaseUnit(DistanceUnit.SECOND)); assertTrue(DistanceUnit.DEGREES.isSameBaseUnit(DistanceUnit.MINUTE)); assertTrue(DistanceUnit.MINUTE.isSameBaseUnit(DistanceUnit.SECOND)); assertTrue(DistanceUnit.MINUTE.isSameBaseUnit(DistanceUnit.DEGREES)); assertTrue(DistanceUnit.SECOND.isSameBaseUnit(DistanceUnit.MINUTE)); assertTrue(DistanceUnit.SECOND.isSameBaseUnit(DistanceUnit.SECOND)); } @Test public void testGetAllUnits() throws Exception { assertArrayEquals( new DistanceUnit[] {DistanceUnit.MM, DistanceUnit.CM, DistanceUnit.M, DistanceUnit.KM}, DistanceUnit.CM.getAllUnits()); assertArrayEquals( new DistanceUnit[] {DistanceUnit.MM, DistanceUnit.CM, DistanceUnit.M, DistanceUnit.KM}, DistanceUnit.M.getAllUnits()); assertArrayEquals(new DistanceUnit[] { DistanceUnit.PT, DistanceUnit.PC, DistanceUnit.IN, DistanceUnit.FT, DistanceUnit.YD, DistanceUnit.MI }, DistanceUnit.FT.getAllUnits()); assertArrayEquals(new DistanceUnit[] { DistanceUnit.PT, DistanceUnit.PC, DistanceUnit.IN, DistanceUnit.FT, DistanceUnit.YD, DistanceUnit.MI }, DistanceUnit.MI.getAllUnits()); assertArrayEquals( new DistanceUnit[] {DistanceUnit.SECOND, DistanceUnit.MINUTE, DistanceUnit.DEGREES}, DistanceUnit.DEGREES.getAllUnits()); assertArrayEquals( new DistanceUnit[] {DistanceUnit.SECOND, DistanceUnit.MINUTE, DistanceUnit.DEGREES}, DistanceUnit.SECOND.getAllUnits()); } @Test public void testGetBestUnit() throws Exception { assertEquals(DistanceUnit.CM, DistanceUnit.getBestUnit(0.01, DistanceUnit.M)); assertEquals(DistanceUnit.M, DistanceUnit.getBestUnit(0.01, DistanceUnit.KM)); assertEquals(DistanceUnit.KM, DistanceUnit.getBestUnit(300, DistanceUnit.KM)); } }