烟幕测试的bug修复
This commit is contained in:
parent
538097f815
commit
4640aa36f8
@ -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
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user