From 4640aa36f8bdeb87d9140474184b06ef6190fd2f Mon Sep 17 00:00:00 2001 From: Tian jianyong <11429339@qq.com> Date: Tue, 15 Apr 2025 18:40:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=83=9F=E5=B9=95=E6=B5=8B=E8=AF=95=E7=9A=84bu?= =?UTF-8?q?g=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Jamming/SmokeGrenadeTests.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/ThreatSource.Tests/src/Jamming/SmokeGrenadeTests.cs b/ThreatSource.Tests/src/Jamming/SmokeGrenadeTests.cs index 2b9afe1..b60b17c 100644 --- a/ThreatSource.Tests/src/Jamming/SmokeGrenadeTests.cs +++ b/ThreatSource.Tests/src/Jamming/SmokeGrenadeTests.cs @@ -207,12 +207,14 @@ namespace ThreatSource.Tests.Jamming } [Theory] - [InlineData(0, 0, 10, true)] // 正对墙面中心 - [InlineData(20, 0, 10, true)] // 斜向墙面但在宽度范围内 - [InlineData(-50, 0, -10, false)] // 在墙外(观察者和目标都在墙外) - [InlineData(0, 15, 0, false)] // 高度超出范围 + [InlineData(0, 0, 0, 0, 5.0, true)] // 直接穿过墙中心:观察者(0,0,-10) -> 目标(0,0,10) + [InlineData(20, 0, 0, 0, 7.07, true)] // 斜向穿过墙面:观察者(20,0,-10) -> 目标(0,0,10) + [InlineData(-50, 0, -50, 0, 0.0, false)] // 在墙外:观察者(-50,0,-10) -> 目标(-50,0,10) + [InlineData(0, 15, 0, 15, 0.0, false)] // 超出高度范围:观察者(0,15,-10) -> 目标(0,15,10) public void GetSmokeThicknessOnLine_WallSmoke_ReturnsCorrectThickness( - double observerX, double observerY, double expectedThickness, bool shouldIntersect) + double observerX, double observerY, + double targetX, double targetY, + double expectedThickness, bool shouldIntersect) { // Arrange var config = new SmokeGrenadeConfig @@ -233,8 +235,9 @@ namespace ThreatSource.Tests.Jamming var smokeGrenade = new SmokeGrenade("test", config, motionParams, _simulationManager); smokeGrenade.Activate(); + // 根据参数设置观察者和目标位置 Vector3D observer = new(observerX, observerY, -10); - Vector3D target = new(observerX, observerY, 10); + Vector3D target = new(targetX, targetY, 10); // Act double thickness = smokeGrenade.GetSmokeThicknessOnLine(observer, target); @@ -243,7 +246,8 @@ namespace ThreatSource.Tests.Jamming if (shouldIntersect) { Assert.True(thickness > 0); - Assert.True(thickness >= config.Thickness); // 斜向穿透时厚度会更大 + // 验证具体厚度值,允许0.1米的误差 + Assert.Equal(expectedThickness, thickness, 0.1); } else {