package au.gov.amsa.navigation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import au.gov.amsa.risky.format.AisClass;
import au.gov.amsa.risky.format.Fix;
public class DriftCandidatesTest {
private static final double PRECISION = 0.00001;
@Test
public void testSplit() {
String s = "a,,,b,c";
List<String> items = Arrays.asList(s.split(","));
assertEquals(Arrays.asList("a", "", "", "b", "c"), items);
}
@Test
public void testReadFromFile() {
List<DriftCandidate> list = DriftCandidates
.fromCsv(new File("src/test/resources/drift-candidates.txt"), false).toList()
.toBlocking().single();
assertEquals(5, list.size());
Fix f = list.get(0).fix();
assertEquals(111450000, f.mmsi());
assertEquals(-10.518791, f.lat(), PRECISION);
assertEquals(140.33229, f.lon(), PRECISION);
assertEquals(1418998619000L, f.time());
assertEquals(AisClass.B, f.aisClass());
assertEquals(96.3, f.courseOverGroundDegrees().get(), PRECISION);
assertEquals(1.0, f.headingDegrees().get(), PRECISION);
assertEquals(3.5, f.speedOverGroundKnots().get(), PRECISION);
assertFalse(f.navigationalStatus().isPresent());
assertEquals(1413956437000L, list.get(0).driftingSince());
}
}