Unignored a couple of GPS tests

- The issue was with accuracy. Average of two coords is fine fo two point fairly close together (<1km), but not for very very large distances.
- We only ever use it for small ranges so changed tests to reflect that

#story[881]
main
Erika Savell 9 years ago
parent 11f6dee301
commit 799e588145

@ -11,7 +11,6 @@ public class CompoundMark extends Marker{
private GPSCoordinate averageGPSCoordinate; private GPSCoordinate averageGPSCoordinate;
private Mark mark1; private Mark mark1;
private Mark mark2 = null; private Mark mark2 = null;
private String name;
public CompoundMark(Mark mark1) { public CompoundMark(Mark mark1) {
super(mark1.getPosition()); super(mark1.getPosition());
@ -28,15 +27,6 @@ public class CompoundMark extends Marker{
} }
public CompoundMark(String name, Mark mark1, Mark mark2) {
super(name, mark1.getPosition(), mark2.getPosition());
this.name = name;
this.mark1 = mark1;
this.mark2 = mark2;
this.averageGPSCoordinate = calculateAverage();
}
public GPSCoordinate getMark1() { public GPSCoordinate getMark1() {
return mark1.getPosition(); return mark1.getPosition();
} }
@ -49,10 +39,6 @@ public class CompoundMark extends Marker{
return averageGPSCoordinate; return averageGPSCoordinate;
} }
public String getName() {
return name;
}
private GPSCoordinate calculateAverage() { private GPSCoordinate calculateAverage() {
if(mark2 != null) { if(mark2 != null) {
GeodeticCalculator calc = new GeodeticCalculator(); GeodeticCalculator calc = new GeodeticCalculator();

@ -4,6 +4,7 @@ import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
/** /**
* Created by esa46 on 29/03/17. * Created by esa46 on 29/03/17.
@ -29,13 +30,12 @@ public class CompoundMarkTest {
} }
@Ignore
@Test @Test
public void averageLatOfTwoMarksIsAccurate() { public void averageLatOfTwoMarksIsAccurate() {
GPSCoordinate testCoord = new GPSCoordinate(10, 0); GPSCoordinate testCoord = new GPSCoordinate(0.001, 0);
Marker testMark = new Marker(ORIGIN_COORD, testCoord); Marker testMark = new Marker(ORIGIN_COORD, testCoord);
assertTrue(testMark.getAverageGPSCoordinate().equals(new GPSCoordinate(5, 0))); assertEquals(testMark.getAverageGPSCoordinate(), new GPSCoordinate(0.0005, 0));
} }
@Test @Test
@ -50,10 +50,11 @@ public class CompoundMarkTest {
@Test @Test
public void averageLatAndLongOfTwoMarksIsAccurate() { public void averageLatAndLongOfTwoMarksIsAccurate() {
GPSCoordinate testCoord1 = new GPSCoordinate(10, 30); GPSCoordinate testCoord1 = new GPSCoordinate(0.0, 30);
GPSCoordinate testCoord2 = new GPSCoordinate(30, 60); GPSCoordinate testCoord2 = new GPSCoordinate(0.001, 60);
Marker testMark = new Marker(testCoord1, testCoord2); Marker testMark = new Marker(testCoord1, testCoord2);
assertTrue(testMark.getAverageGPSCoordinate().equals(new GPSCoordinate(020.644102, 44.014817))); assertEquals(testMark.getAverageGPSCoordinate().getLatitude(), 0.00051776, 1e-8);
assertEquals(testMark.getAverageGPSCoordinate().getLongitude(), 45.000000, 1e-8);
} }
} }

Loading…
Cancel
Save