### Question:
NMEASentence { public static NMEASentence rmc(double magneticVariation) { return rmc(null, null, null, null, null, ()->magneticVariation); } private  NMEASentence(Bind[] buffer); static NMEASentence rmc(double magneticVariation); static NMEASentence rmc(Clock clock, double latitude, double longitude, double sog, double tmg, double magneticVariation); static NMEASentence rmc(Supplier<Clock> clock, DoubleSupplier latitude, DoubleSupplier longitude, DoubleSupplier speedOverGround, DoubleSupplier trackMadeGood, DoubleSupplier magneticVariation); static NMEASentence dpt(double meters, double offset, UnitType from); static NMEASentence dpt(DoubleSupplier meters, DoubleSupplier offset, UnitType from); static NMEASentence dbt(double depth, UnitType from); static NMEASentence dbt(DoubleSupplier depth, UnitType from); static NMEASentence vhw(double speed, UnitType from); static NMEASentence vhw(DoubleSupplier speed, UnitType from); static NMEASentence mwv(int windAngle, double windSpeed, UnitType from, boolean trueWind); static NMEASentence mwv(DoubleSupplier windAngle, DoubleSupplier windSpeed, UnitType from, boolean trueWind); static NMEASentence mtw(double temperature, UnitType from); static NMEASentence mtw(DoubleSupplier temperature, UnitType from); static NMEASentence tll(int target, double latitude, double longitude, CharSequence name, Clock clock, char status, CharSequence referenceTarget); static NMEASentence tll(IntSupplier target, DoubleSupplier latitude, DoubleSupplier longitude, Supplier<CharSequence> name, Supplier<Clock> clock ,Supplier<CharSequence> status, Supplier<CharSequence> referenceTarget); static NMEASentence txt(CharSequence msg); static NMEASentence txt(Supplier<CharSequence> msg); static NMEASentence hdm(double magneticHeading); static NMEASentence hdm(DoubleSupplier magneticHeading); static NMEASentence hdt(double trueHeading); static NMEASentence hdt(DoubleSupplier trueHeading); static NMEASentence hdg(double magneticHeading, double deviation, double variation); static NMEASentence hdg(DoubleSupplier magneticHeading, DoubleSupplier deviation, DoubleSupplier variation); ByteBuffer getByteBuffer(); boolean isNMEA(); boolean isAIS(); boolean isProprietary(); TalkerId getTalkerId(); MessageType getMessageType(); CharSequence getPrefix(); int size(); void writeTo(ByteBuffer byteBuffer); void writeTo(OutputStream out); void writeTo(Appendable out); void writeTo(WritableByteChannel channel); @Override String toString(); static Builder builder(TalkerId talkerId, MessageType messageType); static Builder builder(CharSequence prefix, CharSequence... fields);  }### Answer:
@Test public void testRMC() throws IOException { SimpleStorage ss = new SimpleStorage(); NMEAObserver tc = ss.getStorage(NMEAObserver.class); Clock clock = Clock.fixed(Instant.now(), UTC); LocalTime now = LocalTime.now(clock); NMEASentence rmc = NMEASentence.rmc(clock, 60, 25, 5, 90, 14); parser.parse(rmc.toString(), tc, null); assertEquals(60, ss.getDouble("latitude"), 1e-5); assertEquals(25, ss.getDouble("longitude"), 1e-5); assertEquals(5, ss.getFloat("speedOverGround"), 1e-5); assertEquals(90, ss.getFloat("trackMadeGood"), 1e-5); assertEquals(14, ss.getFloat("magneticVariation"), 1e-5); }