using AcDream.App.World; namespace AcDream.App.Tests.World; public sealed class LiveWorldOriginStateTests { [Fact] public void Placeholder_IsNotAuthoritativeUntilFirstInitialization() { var state = new LiveWorldOriginState(); state.SetPlaceholder(42, 43); Assert.Equal(42, state.CenterX); Assert.Equal(43, state.CenterY); Assert.False(state.IsKnown); Assert.True(state.TryInitialize(10, 11)); Assert.Equal(10, state.CenterX); Assert.Equal(11, state.CenterY); Assert.True(state.IsKnown); Assert.False(state.TryInitialize(20, 21)); Assert.Equal(10, state.CenterX); Assert.Equal(11, state.CenterY); } [Fact] public void Recenter_ReplacesKnownOriginAndResetRetainsItAsPlaceholder() { var state = new LiveWorldOriginState(); Assert.True(state.TryInitialize(1, 2)); state.Recenter(3, 4); state.Reset(); Assert.Equal(3, state.CenterX); Assert.Equal(4, state.CenterY); Assert.False(state.IsKnown); Assert.True(state.TryInitialize(5, 6)); } [Fact] public void RecenterBeforeInitialization_PreservesUnknownAndResetIsIdempotent() { var state = new LiveWorldOriginState(); state.SetPlaceholder(20, 21); state.Recenter(30, 31); state.Reset(); state.Reset(); Assert.Equal(30, state.CenterX); Assert.Equal(31, state.CenterY); Assert.False(state.IsKnown); Assert.True(state.TryInitialize(40, 41)); state.Recenter(50, 51); Assert.True(state.IsKnown); Assert.Equal(50, state.CenterX); Assert.Equal(51, state.CenterY); } }