Skip to content

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pgrawehr committed Jun 17, 2024
1 parent 87db9c8 commit d2ec5f5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/devices/Seatalk1/Messages/SpeedTroughWater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public record SpeedTroughWater : SeatalkMessage
{
internal SpeedTroughWater()
{
Speed = Speed.Zero;
Speed = Speed.FromKnots(0); // Because the decoding converts to knots
}

/// <summary>
Expand All @@ -23,7 +23,7 @@ internal SpeedTroughWater()
public SpeedTroughWater(Speed speed)
{
Speed = speed;
Forwarded = true;
Forwarded = false;
}

/// <summary>
Expand Down Expand Up @@ -54,7 +54,10 @@ public override SeatalkMessage CreateNewMessage(IReadOnlyList<byte> data)
{
double speedvalue = data[2] << 8 | data[3];
speedvalue /= 10.0;
return new SpeedTroughWater(Speed.FromKnots(speedvalue));
return new SpeedTroughWater(Speed.FromKnots(speedvalue))
{
Forwarded = (data[1] & 0x80) != 0
};
}

/// <inheritdoc />
Expand Down
12 changes: 12 additions & 0 deletions src/devices/Seatalk1/tests/MessageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public MessageTests()
[InlineData("85 06 00 00 C0 0D 1F 00 E0", typeof(NavigationToWaypoint))]
[InlineData("11 01 00 00", typeof(ApparentWindSpeed))]
[InlineData("82 05 00 ff 00 ff 00 ff", typeof(TargetWaypointName))]
[InlineData("20 01 00 12", typeof(SpeedTroughWater))]
public void KnownMessageTypeDecode(string msg, Type expectedType)
{
msg = msg.Replace(" ", string.Empty);
Expand Down Expand Up @@ -263,5 +264,16 @@ public void TargetWaypointRoundTrip2(string input, string expected)
TargetWaypointName t2 = (TargetWaypointName)t1.CreateNewMessage(data);
Assert.Equal(expected, t2.Name);
}

[Fact]
public void SpeedTroughWater1()
{
SpeedTroughWater stw = new SpeedTroughWater(Speed.FromKnots(5.2));
var data = stw.CreateDatagram();
SpeedTroughWater stw2 = (SpeedTroughWater)stw.CreateNewMessage(data);
Assert.False(stw.Forwarded);
Assert.True(stw.Speed.Equals(Speed.FromKnots(5.2), Speed.FromKnots(0.1)));
Assert.Equal(stw, stw2);
}
}
}

0 comments on commit d2ec5f5

Please sign in to comment.