CounterDroneBackend/test/unit/CounterDrone.Core.Tests/TestPlannerConfig.cs
tian 8515f7821a feat(v0.5.0): weather into planner + unified physics model
Planner no longer writes local physics formulas. All kinematics/geometry/damage go through shared utility classes (Kinematics/RouteGeometry/CloudExpansionModel/DamageAssessment).

Core: RouteGeometry (route geometry), PlannerConfig + planner_config.json (config externalization). Planner route-aware layout (offset along tangent), cloud overlap 20pct. DroneEntity arc-length driven.

Fixes: PathInSphere cloud-frame correction (root cause), GaussianPuffDispersion hardcoded Sunny, ComputeEffectiveRadius cloud age, planner wind offset, remove drone wind bias.

Tests 167 to 191, 41s. Windy scenarios pass.
2026-06-14 14:49:53 +08:00

22 lines
816 B
C#

using System;
using System.IO;
using CounterDrone.Core.Algorithms;
namespace CounterDrone.Core.Tests
{
/// <summary>测试用 PlannerConfig 加载辅助。
/// 从仓库 data/planner_config.json 加载真实配置,确保测试与生产配置一致。</summary>
public static class TestPlannerConfig
{
private static readonly Lazy<PlannerConfig> _instance = new(() =>
{
// bin\Debug\net10.0 → 上 6 层到仓库根,再进 data 目录
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
string repoRoot = Path.GetFullPath(Path.Combine(baseDir, "..", "..", "..", "..", "..", ".."));
return PlannerConfig.Load(Path.Combine(repoRoot, "data"));
});
public static PlannerConfig Instance => _instance.Value;
}
}