#0040 增加测试用例

This commit is contained in:
zhengxuan.zhang
2026-03-18 20:41:05 +08:00
parent 67898edc3f
commit 180501808e
8 changed files with 121 additions and 1621 deletions
+19 -1
View File
@@ -1,17 +1,27 @@
using System;
using Xunit;
using Xunit.Abstractions;
using XplorePlane.Models;
namespace XplorePlane.Tests.Models
{
public class StateModelsTests
{
private readonly ITestOutputHelper _output;
public StateModelsTests(ITestOutputHelper output)
{
_output = output;
}
// ── Default Value Tests ───────────────────────────────────────
[Fact]
public void MotionState_Default_AllZeros()
{
var state = MotionState.Default;
_output.WriteLine($"MotionState.Default: XM={state.XM}, YM={state.YM}, ZT={state.ZT}, ZD={state.ZD}, TiltD={state.TiltD}, Dist={state.Dist}");
_output.WriteLine($" Speeds: XM={state.XMSpeed}, YM={state.YMSpeed}, ZT={state.ZTSpeed}, ZD={state.ZDSpeed}, TiltD={state.TiltDSpeed}, Dist={state.DistSpeed}");
Assert.Equal(0, state.XM);
Assert.Equal(0, state.YM);
@@ -31,6 +41,7 @@ namespace XplorePlane.Tests.Models
public void RaySourceState_Default_IsOffAndZeros()
{
var state = RaySourceState.Default;
_output.WriteLine($"RaySourceState.Default: IsOn={state.IsOn}, Voltage={state.Voltage}, Power={state.Power}");
Assert.False(state.IsOn);
Assert.Equal(0, state.Voltage);
@@ -41,6 +52,7 @@ namespace XplorePlane.Tests.Models
public void DetectorState_Default_DisconnectedAndZeros()
{
var state = DetectorState.Default;
_output.WriteLine($"DetectorState.Default: IsConnected={state.IsConnected}, IsAcquiring={state.IsAcquiring}, FrameRate={state.FrameRate}, Resolution='{state.Resolution}'");
Assert.False(state.IsConnected);
Assert.False(state.IsAcquiring);
@@ -52,6 +64,7 @@ namespace XplorePlane.Tests.Models
public void SystemState_Default_IdleNoError()
{
var state = SystemState.Default;
_output.WriteLine($"SystemState.Default: OperationMode={state.OperationMode}, HasError={state.HasError}, ErrorMessage='{state.ErrorMessage}'");
Assert.Equal(OperationMode.Idle, state.OperationMode);
Assert.False(state.HasError);
@@ -62,6 +75,7 @@ namespace XplorePlane.Tests.Models
public void CameraState_Default_DisconnectedAndZeros()
{
var state = CameraState.Default;
_output.WriteLine($"CameraState.Default: IsConnected={state.IsConnected}, IsStreaming={state.IsStreaming}, CurrentFrame={state.CurrentFrame}, Width={state.Width}, Height={state.Height}, FrameRate={state.FrameRate}");
Assert.False(state.IsConnected);
Assert.False(state.IsStreaming);
@@ -75,6 +89,7 @@ namespace XplorePlane.Tests.Models
public void LinkedViewState_Default_ZeroPositionNotExecuting()
{
var state = LinkedViewState.Default;
_output.WriteLine($"LinkedViewState.Default: TargetPosition=({state.TargetPosition.X}, {state.TargetPosition.Y}, {state.TargetPosition.Z}), IsExecuting={state.IsExecuting}, LastRequestTime={state.LastRequestTime}");
Assert.Equal(0, state.TargetPosition.X);
Assert.Equal(0, state.TargetPosition.Y);
@@ -87,6 +102,7 @@ namespace XplorePlane.Tests.Models
public void RecipeExecutionState_Default_IdleAndZeros()
{
var state = RecipeExecutionState.Default;
_output.WriteLine($"RecipeExecutionState.Default: CurrentStepIndex={state.CurrentStepIndex}, TotalSteps={state.TotalSteps}, Status={state.Status}, CurrentRecipeName='{state.CurrentRecipeName}'");
Assert.Equal(0, state.CurrentStepIndex);
Assert.Equal(0, state.TotalSteps);
@@ -100,8 +116,8 @@ namespace XplorePlane.Tests.Models
public void MotionState_WithExpression_ProducesNewInstance()
{
var original = MotionState.Default;
var modified = original with { XM = 100 };
_output.WriteLine($"Original.XM={original.XM}, Modified.XM={modified.XM}, SameRef={ReferenceEquals(original, modified)}");
// New instance is different from original
Assert.NotSame(original, modified);
@@ -124,6 +140,7 @@ namespace XplorePlane.Tests.Models
);
var (x, y, z) = matrix.Transform(pixelX: 5, pixelY: 8);
_output.WriteLine($"Matrix Transform(5, 8): x={x}, y={y}, z={z} (expected: 20, 44, 0)");
// x = 2*5 + 0*8 + 10 = 20
Assert.Equal(20, x);
@@ -144,6 +161,7 @@ namespace XplorePlane.Tests.Models
);
var (x, y, z) = identity.Transform(pixelX: 42.5, pixelY: 99.1);
_output.WriteLine($"Identity Transform(42.5, 99.1): x={x}, y={y}, z={z}");
Assert.Equal(42.5, x, precision: 10);
Assert.Equal(99.1, y, precision: 10);