package org.terst.nav.ais import org.junit.Assert.* import org.junit.Test class AisVesselTest { @Test fun `holds all fields correctly`() { val vessel = AisVessel( mmsi = 123456789, name = "MY VESSEL", callsign = "W1ABC", lat = 37.5, lon = -122.0, sog = 5.5, cog = 270.0, heading = 269, vesselType = 36, timestampMs = 1000L ) assertEquals(123456789, vessel.mmsi) assertEquals("MY VESSEL", vessel.name) assertEquals("W1ABC", vessel.callsign) assertEquals(37.5, vessel.lat, 0.0) assertEquals(-122.0, vessel.lon, 0.0) assertEquals(5.5, vessel.sog, 0.0) assertEquals(270.0, vessel.cog, 0.0) assertEquals(269, vessel.heading) assertEquals(36, vessel.vesselType) assertEquals(1000L, vessel.timestampMs) } @Test fun `equality based on all fields`() { val v1 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L) val v2 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L) assertEquals(v1, v2) } @Test fun `inequality when mmsi differs`() { val v1 = AisVessel(1, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L) val v2 = AisVessel(2, "A", "B", 0.0, 0.0, 0.0, 0.0, 0, 0, 100L) assertNotEquals(v1, v2) } @Test fun `heading 511 means not available`() { val vessel = AisVessel(1, "", "", 0.0, 0.0, 0.0, 0.0, 511, 0, 0L) assertEquals(511, vessel.heading) } }