package org.limewire.promotion; import junit.framework.Test; import org.limewire.util.BaseTestCase; import org.limewire.util.ByteUtils; public class LatitudeLongitudeTest extends BaseTestCase { public LatitudeLongitudeTest(String name) { super(name); } public static Test suite() { return buildTestSuite(LatitudeLongitudeTest.class); } public void testCalculateDistance() { LatitudeLongitude pos1 = new LatitudeLongitude(15, -90); LatitudeLongitude pos2 = new LatitudeLongitude(45, 0); assertEquals(pos1.distanceFrom(pos2), pos2.distanceFrom(pos1)); assertEquals(8835, Math.round(pos1.distanceFrom(pos2))); // Go around 360 degrees assertEquals(0.0, pos1.distanceFrom(new LatitudeLongitude(375, 270))); } public void testLongBytesToDegrees() { assertEquals(0.0, LatitudeLongitude.toRadians(new byte[] { 0 })); assertEquals(6, Math.round(LatitudeLongitude.toRadians(new byte[] { -1, -1, -1 }))); assertEquals(3, Math .round(LatitudeLongitude.toRadians(new byte[] { 127, -1, -1 }))); assertEquals(6, Math.round(LatitudeLongitude.toRadians(ByteUtils.long2bytes( 16777215, 3)))); } public void testConvertDegreesToBytes() { assertEquals(new byte[] { 0, 0, 0 }, LatitudeLongitude.convertDegreesToBytes(0, 3)); assertEquals(new byte[] { -1, -1, -1 }, LatitudeLongitude.convertDegreesToBytes( 359.9999999, 3)); assertEquals(ByteUtils.long2bytes(8388608, 3), LatitudeLongitude.convertDegreesToBytes( 180, 3)); } public void testToBytes() { assertEquals(new byte[] { 0, 0, 0, 0, 0, 0 }, new LatitudeLongitude(0, 0).toBytes()); assertEquals(new byte[] { 0, 0, 0, -128, 0, 0 }, new LatitudeLongitude(0, 180).toBytes()); assertEquals(new byte[] { -128, 0, 0, -128, 0, 0 }, new LatitudeLongitude(180, 180) .toBytes()); } }