From 61e9fe792c0e1b0a1848907899504306aff990f9 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Tue, 13 Oct 2026 02:15:46 +0200 Subject: [PATCH] Visibility 4b: paint tests use deaf observers; the sensor record is one slot longer; the key test serializes JSON from a bare launcher Three tests failed at 8be15c6a: TheBeamWidthIsKey12OfUnion5 read a 13-slot sensor record (14 now, key 13 added); TheInterceptFactorKeys serialized a float4 guidance curve to JSON; ASearchPaintFromAPingerThatHasLeftCreatesNoReveal heard the ping while its pinger stood in the zone. The paint tests (revealed-unseen, search-paint reveal, departed pinger and departed locker) now observe with no active sensor so the reveal they pin is the paint's alone. Co-Authored-By: Claude Opus 5.5 --- tests/Aetheria.Shared.Tests/ContactRevealTests.cs | 8 ++++---- tests/Aetheria.Shared.Tests/EmissionTests.cs | 2 +- tests/Aetheria.Shared.Tests/PaintModeTests.cs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/Aetheria.Shared.Tests/ContactRevealTests.cs b/tests/Aetheria.Shared.Tests/ContactRevealTests.cs index d295849e3..78037bda5 100644 --- a/tests/Aetheria.Shared.Tests/ContactRevealTests.cs +++ b/tests/Aetheria.Shared.Tests/ContactRevealTests.cs @@ -330,7 +330,7 @@ public sealed partial class ContactRevealTests : IDisposable public void APaintRevealsTheEmitterEvenUnseen() { var locker = Add(float3(0, 0, 200), new[] { "Locker" }); - var o = Add(float3(0, 0, 0), new[] { "Eye" }); + var o = Add(float3(0, 0, 0)); // deaf: no active sensor, so the reveal is the paint's alone, never the lock's emission heard locker.SetIff(o, true); locker.EntityInfoGathered[o] = 1f; locker.SetTarget(o); @@ -863,7 +863,7 @@ public sealed partial class ContactRevealTests : IDisposable public void APaintFromAShipThatHasLeftTheZoneRevealsNothing() { var locker = Add(float3(0, 0, 200), new[] { "Locker" }); - var o = Add(float3(0, 0, 0), new[] { "Eye" }); + var o = Add(float3(0, 0, 0)); // deaf: no active sensor, so the reveal is the paint's alone, never the lock's emission heard locker.SetIff(o, true); locker.EntityInfoGathered[o] = 1f; locker.SetTarget(o); @@ -890,7 +890,7 @@ public sealed partial class ContactRevealTests : IDisposable public void ASearchPaintRevealsThePingersSensor() { var p = Add(float3(0, 0, 100), new[] { "Eye" }); - var o = Add(float3(0, 0, 0), new[] { "Eye" }); + var o = Add(float3(0, 0, 0)); // deaf: the reveal is the paint's alone, never the ping's emission heard var item = p.Equipment.Single(i => i.Behaviors.Any(b => b is Sensor)); var sensor = (Sensor) item.Behaviors.Single(b => b is Sensor); Tick(.01f); @@ -916,7 +916,7 @@ public sealed partial class ContactRevealTests : IDisposable public void ASearchPaintFromAPingerThatHasLeftCreatesNoReveal() { var p = Add(float3(0, 0, 100), new[] { "Eye" }); - var o = Add(float3(0, 0, 0), new[] { "Eye" }); + var o = Add(float3(0, 0, 0)); // deaf: it heard nothing of the sweep while the pinger stood in the zone var sensor = (Sensor) p.Equipment.Single(i => i.Behaviors.Any(b => b is Sensor)).Behaviors.Single(b => b is Sensor); Tick(.01f); sensor.Ping(); diff --git a/tests/Aetheria.Shared.Tests/EmissionTests.cs b/tests/Aetheria.Shared.Tests/EmissionTests.cs index ee353b7a5..1a721172a 100644 --- a/tests/Aetheria.Shared.Tests/EmissionTests.cs +++ b/tests/Aetheria.Shared.Tests/EmissionTests.cs @@ -294,7 +294,7 @@ public sealed partial class ContactRevealTests Assert.Equal(35, reader.ReadArrayHeader()); for (var slot = 0; slot < 34; slot++) reader.Skip(); Assert.Equal(3f, MessagePackSerializer.Deserialize(ref reader, EmissionWire).Min); - Assert.Equal(3f, JObject.Parse(JsonConvert.SerializeObject(launcher))["interceptFactor"].ToObject().Min); + Assert.Equal(3f, JObject.Parse(JsonConvert.SerializeObject(new LauncherData { InterceptFactor = Const(3) }))["interceptFactor"].ToObject().Min); var back = Assert.IsType(MessagePackSerializer.Deserialize(bytes, EmissionWire)); Assert.Equal(3f, back.InterceptFactor.Min); diff --git a/tests/Aetheria.Shared.Tests/PaintModeTests.cs b/tests/Aetheria.Shared.Tests/PaintModeTests.cs index 43dce6634..09a421db6 100644 --- a/tests/Aetheria.Shared.Tests/PaintModeTests.cs +++ b/tests/Aetheria.Shared.Tests/PaintModeTests.cs @@ -726,7 +726,7 @@ public sealed class PaintModeTests : IDisposable var reader = new MessagePackReader(bytes); Assert.Equal(2, reader.ReadArrayHeader()); Assert.Equal(5, reader.ReadInt32()); - Assert.Equal(13, reader.ReadArrayHeader()); + Assert.Equal(14, reader.ReadArrayHeader()); for (var slot = 0; slot < 12; slot++) reader.Skip(); Assert.Equal(90f, MessagePackSerializer.Deserialize(ref reader, WireOptions).Min);