1/* 2 * Copyright (C) 2007 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.location; 18 19import android.test.suitebuilder.annotation.SmallTest; 20 21import junit.framework.TestCase; 22 23/** 24 * Unit tests for android.location.Location 25 */ 26@SmallTest 27public class LocationTest extends TestCase { 28 29 // ***** Tests for Location.convert 30 public void testConvert_DegreesToDouble(){ 31 String testDegreesCoord = "-80.075"; 32 String message; 33 double result; 34 35 result = Location.convert(testDegreesCoord); 36 message = "degreesToDoubleTest: Double should be -80.075, actual value is " + 37 String.valueOf(result); 38 assertEquals(message, -80.075, result); 39 } 40 41 public void testConvert_MinutesToDouble(){ 42 String testMinutesCoord = "-80:05.10000"; 43 String message; 44 double result; 45 46 result = Location.convert(testMinutesCoord); 47 message = "minutesToDoubleTest: Double should be -80.085, actual value is " + 48 String.valueOf(result); 49 assertEquals(message, -80.085, result); 50 } 51 52 public void testConvert_SecondsToDouble(){ 53 String testSecondsCoord = "-80:04:03.00000"; 54 String message; 55 double result; 56 57 result = Location.convert(testSecondsCoord); 58 message = "secondsToDoubleTest: Double should be -80.0675, actual value is " + 59 String.valueOf(result); 60 assertEquals(message, -80.0675, result); 61 } 62 63 public void testConvert_SecondsToDouble2(){ 64 String testSecondsCoord = "-80:4:3"; 65 String message; 66 double result; 67 68 result = Location.convert(testSecondsCoord); 69 message = "secondsToDouble2Test: Double should be -80.0675, actual value is " + 70 String.valueOf(result); 71 assertEquals(message, -80.0675, result); 72 } 73 74 // Testing the Convert(Double, Int) 75 public void testConvert_CoordinateToDegrees(){ 76 String message; 77 String result; 78 79 result = Location.convert(-80.075, Location.FORMAT_DEGREES); 80 message = "coordinateToDegreesTest: Should return a string -80.075, but returned " + result; 81 assertEquals(message, "-80.075", result); 82 } 83 84 public void testConvert_CoordinateToDegrees2(){ 85 String message; 86 String result; 87 result = Location.convert(-80.0, Location.FORMAT_DEGREES); 88 message = "coordinateToDegrees2Test: Should return a string -80, but returned " + result; 89 assertEquals(message, "-80", result); 90 } 91 92 public void testConvert_CoordinateToMinutes(){ 93 String message; 94 String result; 95 double input = -80.085; 96 result = Location.convert(input, Location.FORMAT_MINUTES); 97 message = "coordinateToMinuteTest: Should return a string -80:5.1, but returned " + 98 result; 99 assertEquals(message, "-80:5.1", result); 100 } 101 102 public void testConvert_CoordinateToMinutes2(){ 103 String message; 104 String result; 105 double input = -80; 106 result = Location.convert(input, Location.FORMAT_MINUTES); 107 message = "coordinateToMinute2Test: Should return a string -80:0, but returned " + 108 result; 109 assertEquals(message, "-80:0", result); 110 } 111 112 public void testConvert_CoordinateToSeconds(){ 113 String message; 114 String result; 115 116 result = Location.convert(-80.075, Location.FORMAT_SECONDS); 117 message = "coordinateToSecondsTest: Should return a string -80:4:30, but returned " + 118 result; 119 assertEquals(message, "-80:4:30", result); 120 } 121 // **** end tests for Location.convert 122 123 124 public void testBearingTo(){ 125 String message; 126 float bearing; 127 Location zeroLocation = new Location(""); 128 zeroLocation.setLatitude(0); 129 zeroLocation.setLongitude(0); 130 131 Location testLocation = new Location(""); 132 testLocation.setLatitude(1000000); 133 testLocation.setLongitude(0); 134 135 bearing = zeroLocation.bearingTo(zeroLocation); 136 message = "bearingToTest: Bearing should be 0, actual value is " + String.valueOf(bearing); 137 assertEquals(message, 0, bearing, 0); 138 139 bearing = zeroLocation.bearingTo(testLocation); 140 message = "bearingToTest: Bearing should be 180, actual value is " + 141 String.valueOf(bearing); 142 assertEquals(message, 180, bearing, 0); 143 144 testLocation.setLatitude(0); 145 testLocation.setLongitude(1000000); 146 bearing = zeroLocation.bearingTo(testLocation); 147 message = "bearingToTest: Bearing should be -90, actual value is " + 148 String.valueOf(bearing); 149 assertEquals(message, -90, bearing, 0); 150 151 //TODO: Test a Random Middle Value 152 } 153 154 public void testDistanceTo() { 155 String message; 156 boolean result = true; 157 float distance; 158 Location zeroLocation = new Location(""); 159 zeroLocation.setLatitude(0); 160 zeroLocation.setLongitude(0); 161 162 Location testLocation = new Location(""); 163 testLocation.setLatitude(1000000); 164 testLocation.setLongitude(0); 165 166 distance = zeroLocation.distanceTo(zeroLocation); 167 message = "distanceToTest: Distance should be 0, actual value is " + 168 String.valueOf(distance); 169 assertEquals(message, distance, 0, 0); 170 171 distance = zeroLocation.distanceTo(testLocation); 172 message = "distanceToTest: Distance should be 8885140, actual value is " + 173 String.valueOf(distance); 174 assertEquals(message, distance, 8885140.0, 1); 175 } 176 177 public void testAltitude() { 178 String message; 179 Location loc = new Location(""); 180 181 loc.setAltitude(1); 182 message = "altitudeTest: set/getAltitude to 1 didn't work."; 183 assertEquals(message, loc.getAltitude(), 1, 0); 184 message = "altitudeTest: hasAltitude (a) didn't work."; 185 assertTrue(message, loc.hasAltitude()); 186 187 loc.removeAltitude(); 188 message = "altitudeTest: hasAltitude (b) didn't work."; 189 assertFalse(message, loc.hasAltitude()); 190 message = "altitudeTest: getAltitude didn't return 0 when there was no altitude."; 191 assertEquals(message, loc.getAltitude(), 0, 0); 192 } 193 194 public void testSpeed() { 195 String message; 196 Location loc = new Location(""); 197 198 loc.setSpeed(1); 199 message = "speedTest: set/getSpeed to 1 didn't work."; 200 assertEquals(message, loc.getSpeed(), 1, 0); 201 message = "speedTest: hasSpeed (a) didn't work."; 202 assertTrue(message, loc.hasSpeed()); 203 204 loc.removeSpeed(); 205 message = "speedTest: hasSpeed (b) didn't work."; 206 assertFalse(message, loc.hasSpeed()); 207 message = "speedTest: getSpeed didn't return 0 when there was no speed."; 208 assertEquals(message, loc.getSpeed(), 0, 0); 209 } 210 211 public void testBearing() { 212 String message; 213 Location loc = new Location(""); 214 215 loc.setBearing(1); 216 message = "bearingTest: set/getBearing to 1 didn't work."; 217 assertEquals(message, loc.getBearing(), 1, 0); 218 message = "bearingTest: hasBearing (a) didn't work."; 219 assertTrue(message, loc.hasBearing()); 220 221 loc.removeBearing(); 222 message = "bearingTest: hasBearing (b) didn't work."; 223 assertFalse(message, loc.hasBearing()); 224 message = "bearingTest: getBearing didn't return 0 when there was no bearing."; 225 assertEquals(message, loc.getBearing(), 0, 0); 226 } 227 228} 229 230 231