Review fixes: telemetry session id per login; Framework number text
F1: the telemetry session id is new at every login. The original made one per load of its assembly and its loader reloaded it at every login; the backend counts new kills per (session id, character), so reusing one id across a relog under-counted kills until the reset counter passed the old total. F5/F6: .NET Framework never wrote a negative zero, and its fixed-point formats (F7, F2, F0) rounded at fifteen significant digits, half away from zero. Spawn and portal coordinates, kills_per_hour and the !report line now format that way; the round-trip converter maps -0 to 0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9b5371c2e4
commit
71f14473c6
10 changed files with 157 additions and 10 deletions
|
|
@ -43,6 +43,25 @@ public sealed class WireNumberTests
|
|||
public void Floats_use_the_frameworks_round_trip_digits(float value, string expected) =>
|
||||
Assert.Equal("{\"v\":" + expected + "}", Wire.Serialize(new { v = value }));
|
||||
|
||||
[Fact]
|
||||
public void Negative_zero_is_written_as_zero_as_the_framework_did()
|
||||
{
|
||||
Assert.Equal("{\"v\":0.0}", Wire.Serialize(new { v = Math.Round(-0.001, 2) }));
|
||||
Assert.Equal("{\"v\":0.0}", Wire.Serialize(new { v = -0f }));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
// Rounded half away from zero at fifteen significant digits, as the
|
||||
// Framework did; the modern exact-binary rounding differs on these.
|
||||
[InlineData(0.125, "F2", "0.13")]
|
||||
[InlineData(2.675, "F2", "2.68")]
|
||||
[InlineData(-0.001, "F2", "0.00")]
|
||||
[InlineData(-0.0, "F7", "0.0000000")]
|
||||
[InlineData(12.5, "F0", "13")]
|
||||
[InlineData(33.650001525878906, "F7", "33.6500015")]
|
||||
public void Fixed_formats_round_as_the_framework_did(double value, string format, string expected) =>
|
||||
Assert.Equal(expected, FrameworkNumberConverter.FrameworkFixed(value, format, System.Globalization.CultureInfo.InvariantCulture));
|
||||
|
||||
[Fact]
|
||||
public void Nulls_and_non_finite_values_keep_newtonsofts_handling()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue