From 3b8fb4ee86e90ae6345b38c76688bcf81d4c87e3 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Sun, 14 Jun 2026 15:52:05 +0800 Subject: [PATCH] refactor: code cleanup - warnings, dead code, naming Warnings (9 to 0): events declared nullable, _cache nullable, IDamageModel param nullable. Dead code removed: DefaultFormations class + FormationTemplate; AlgorithmTypes legacy types (ThreatProfile/DefenseRecommendation/DefenseSolution/MultiGroupRecommendation/RecommendedPlatform/RecommendedDetection); DroneEntity CurrentWaypointIndex/FormationOffsetX/Y/ApplyFormationOffset/wind params; Vector3 operators+Length+DistanceTo; CloudExpansionModel Phase2Duration/TimeToDensity; Kinematics EstimatedShellTime/GaussianConcentration; InterceptCandidate write-only fields (CoverageDuration/FlightTime/ShellFlightTime); ParticleParams EmitRate/ColorHex. Naming: DefaultDefensePlanner -> DefensePlanner (only impl of IDefensePlanner); inCloudTime -> inCloudDistance (returns meters not seconds); DamageAssessment class summary fixed; wind comments clarified (drone wind removed vs cloud wind active). Tests: 191 pass, 0 warnings. --- .../Algorithms/AlgorithmTypes.cs | 80 ------------------ .../Algorithms/CloudExpansionModel.cs | 13 --- .../Algorithms/DamageAssessment.cs | 2 +- ...ultDefensePlanner.cs => DefensePlanner.cs} | 14 +-- .../Algorithms/Kinematics.cs | 16 ---- src/CounterDrone.Core/DefaultFireUnits.cs | 2 +- src/CounterDrone.Core/DefaultFormations.cs | 42 --------- .../Simulation/DroneEntity.cs | 26 +----- .../Simulation/SimulationEngine.cs | 20 ++--- .../CounterDrone.Core/CounterDrone.Core.dll | Bin 135168 -> 125952 bytes .../Scripts/Managers/ManagerVerification.cs | 2 +- .../Scripts/Managers/SimulationBootstrap.cs | 2 +- .../Scripts/Managers/SimulationRunner.cs | 2 +- .../DefensePlannerTests.cs | 10 +-- .../DroneEntityTests.cs | 12 +-- .../CounterDrone.Core.Tests/EdgeCaseTests.cs | 6 +- .../FullPipelineTests.cs | 2 +- .../SimulationEngineTests.cs | 2 +- 18 files changed, 38 insertions(+), 215 deletions(-) rename src/CounterDrone.Core/Algorithms/{DefaultDefensePlanner.cs => DefensePlanner.cs} (97%) delete mode 100644 src/CounterDrone.Core/DefaultFormations.cs diff --git a/src/CounterDrone.Core/Algorithms/AlgorithmTypes.cs b/src/CounterDrone.Core/Algorithms/AlgorithmTypes.cs index 5433b6c..913bcbf 100644 --- a/src/CounterDrone.Core/Algorithms/AlgorithmTypes.cs +++ b/src/CounterDrone.Core/Algorithms/AlgorithmTypes.cs @@ -3,53 +3,6 @@ using CounterDrone.Core.Models; namespace CounterDrone.Core.Algorithms { - /// 威胁画像 - public class ThreatProfile - { - public CombatScene Environment { get; set; } = new(); - public List Targets { get; set; } = new(); - public RoutePlan Route { get; set; } = new(); - public List Waypoints { get; set; } = new(); - public List ControlZones { get; set; } = new(); - /// 偏好平台类型(null = 算法自行决定,当前默认地基) - public PlatformType? PreferredPlatformType { get; set; } - } - - /// 防御推荐方案 - public class DefenseRecommendation - { - public DefenseSolution Best { get; set; } = new(); - public DefenseSolution Critical { get; set; } = new(); - } - - /// 单套防御方案 - public class DefenseSolution - { - public AerosolType RecommendedAerosolType { get; set; } - public string AerosolRationale { get; set; } = string.Empty; - public CloudDispersal RecommendedCloud { get; set; } = new(); - - public List Platforms { get; set; } = new(); - public List Detections { get; set; } = new(); - - public float InterceptProbability { get; set; } - public string SummaryRationale { get; set; } = string.Empty; - - public List FireSchedule { get; set; } = new(); - - /// 此方案占用的平台起始索引(多编队合并用) - public int PlatformOffset { get; set; } - } - - /// 多编队推荐结果 - public class MultiGroupRecommendation - { - /// 每组的独立方案 - public List GroupSolutions { get; set; } = new(); - /// 合并后的总发射计划 - public List MergedFireSchedule { get; set; } = new(); - } - /// 火力单元(完整的武器系统) public class FireUnit { @@ -121,47 +74,17 @@ namespace CounterDrone.Core.Algorithms } } - public class RecommendedPlatform - { - public PlatformType Type { get; set; } - public Vector3 Position { get; set; } - public int Quantity { get; set; } - public int MunitionCount { get; set; } - public float CoverageVolume { get; set; } - public float Cooldown { get; set; } = 5f; - public float MuzzleVelocity { get; set; } = 800f; - /// 空基平台巡航速度 m/s - public float CruiseSpeed { get; set; } = 55f; - /// 空基平台投放高度 m - public float ReleaseAltitude { get; set; } - } - - public class RecommendedDetection - { - public Vector3 Position { get; set; } - public float DetectionRadius { get; set; } - public int Quantity { get; set; } - } - /// 三维向量(纯 C#,不依赖 UnityEngine) public struct Vector3 { public float X, Y, Z; public Vector3(float x, float y, float z) { X = x; Y = y; Z = z; } - - public static Vector3 operator +(Vector3 a, Vector3 b) => new(a.X + b.X, a.Y + b.Y, a.Z + b.Z); - public static Vector3 operator -(Vector3 a, Vector3 b) => new(a.X - b.X, a.Y - b.Y, a.Z - b.Z); - public static Vector3 operator *(Vector3 a, float s) => new(a.X * s, a.Y * s, a.Z * s); - public float Length => (float)System.Math.Sqrt(X * X + Y * Y + Z * Z); - public float DistanceTo(Vector3 other) => (this - other).Length; } /// 粒子渲染参数 public class ParticleParams { - public float EmitRate { get; set; } = 100; public float Opacity { get; set; } = 1.0f; - public string ColorHex { get; set; } = "#FFFFFF"; public float SizeMultiplier { get; set; } = 1.0f; } @@ -184,10 +107,7 @@ namespace CounterDrone.Core.Algorithms public FireUnit Unit { get; set; } = null!; public AerosolType AmmoType { get; set; } public float EarliestInterceptTime { get; set; } - public float CoverageDuration { get; set; } public float KillProbability { get; set; } - public float FlightTime { get; set; } // 弹药/平台飞行时间 - public float ShellFlightTime { get; set; } // 仅地基用 } /// 单元分配:一个火力单元被分配给一个威胁的配置 diff --git a/src/CounterDrone.Core/Algorithms/CloudExpansionModel.cs b/src/CounterDrone.Core/Algorithms/CloudExpansionModel.cs index 713b207..a007717 100644 --- a/src/CounterDrone.Core/Algorithms/CloudExpansionModel.cs +++ b/src/CounterDrone.Core/Algorithms/CloudExpansionModel.cs @@ -20,8 +20,6 @@ namespace CounterDrone.Core.Algorithms /// Phase 2 结束时的有效半径(30s 湍流膨胀) public float TurbulentRadius => RadiusAt(30f); - /// Phase 2 边界时间 - public float Phase2Duration => 30f; /// 湍流膨胀系数 k public float TurbulentExpansionK => (float)_ammo.TurbulentExpansionK; @@ -55,17 +53,6 @@ namespace CounterDrone.Core.Algorithms return volume > 0.001f ? (float)_ammo.SourceStrength / volume : (float)_ammo.CoreDensity; } - /// 达到指定浓度所需时间(密度随膨胀下降,较晚时间密度更低) - /// 浓度首次低于threshold的时间(s),如果不会低于则返回MaxDuration - public float TimeToDensity(float threshold) - { - // 密度 ≈ SourceStrength / (4/3 π R³),随R增大而下降 - // 求R使得密度=threshold: R³ = SourceStrength / (threshold * 4π/3) - float src = (float)_ammo.SourceStrength; - float volume = src / Math.Max(threshold, 0.000001f); - float r = (float)Math.Pow(volume * 3f / (4f * (float)Math.PI), 1f / 3f); - return TimeToReach(r); - } /// 覆盖指定距离需要的云团数量 /// 需要覆盖的距离 (m) diff --git a/src/CounterDrone.Core/Algorithms/DamageAssessment.cs b/src/CounterDrone.Core/Algorithms/DamageAssessment.cs index ab6d39c..b44c6ae 100644 --- a/src/CounterDrone.Core/Algorithms/DamageAssessment.cs +++ b/src/CounterDrone.Core/Algorithms/DamageAssessment.cs @@ -3,7 +3,7 @@ using CounterDrone.Core.Models; namespace CounterDrone.Core.Algorithms { - /// 毁伤评估——路径积分计算无人机穿过云团的暴露时间 + /// 毁伤评估——路径积分计算无人机穿过云团的路径长度(米),用于换算暴露时间 public static class DamageAssessment { /// 线段 (p1→p2) 在球体内的长度,换算为路径长度 (m) diff --git a/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs b/src/CounterDrone.Core/Algorithms/DefensePlanner.cs similarity index 97% rename from src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs rename to src/CounterDrone.Core/Algorithms/DefensePlanner.cs index 22c8ac2..593954e 100644 --- a/src/CounterDrone.Core/Algorithms/DefaultDefensePlanner.cs +++ b/src/CounterDrone.Core/Algorithms/DefensePlanner.cs @@ -5,15 +5,15 @@ using CounterDrone.Core.Models; namespace CounterDrone.Core.Algorithms { - /// 默认防御规划器 — 五步流水线,全部调用与引擎共享的物理工具类 - public class DefaultDefensePlanner : IDefensePlanner + /// 防御规划器 — 五步流水线,全部调用与引擎共享的物理工具类 + public class DefensePlanner : IDefensePlanner { private readonly List _ammoCatalog; private readonly IDamageModel _damageModel; private readonly PlannerConfig _config; - public DefaultDefensePlanner(List ammoCatalog, PlannerConfig config, - IDamageModel damageModel = null) + public DefensePlanner(List ammoCatalog, PlannerConfig config, + IDamageModel? damageModel = null) { _ammoCatalog = ammoCatalog ?? throw new ArgumentNullException(nameof(ammoCatalog)); _config = config ?? throw new ArgumentNullException(nameof(config)); @@ -290,10 +290,7 @@ namespace CounterDrone.Core.Algorithms Unit = unit, AmmoType = ammoType, EarliestInterceptTime = interceptTime, - CoverageDuration = effectiveR * 2f, KillProbability = prob, - FlightTime = shellTime, - ShellFlightTime = shellTime, }; } @@ -324,10 +321,7 @@ namespace CounterDrone.Core.Algorithms Unit = unit, AmmoType = ammoType, EarliestInterceptTime = interceptTime, - CoverageDuration = effectiveR * 2f, KillProbability = prob, - FlightTime = totalTime, - ShellFlightTime = fallTime, }; } diff --git a/src/CounterDrone.Core/Algorithms/Kinematics.cs b/src/CounterDrone.Core/Algorithms/Kinematics.cs index 9528f88..d9421d5 100644 --- a/src/CounterDrone.Core/Algorithms/Kinematics.cs +++ b/src/CounterDrone.Core/Algorithms/Kinematics.cs @@ -55,12 +55,6 @@ namespace CounterDrone.Core.Algorithms return range / (muzzleVelocity * cosAngle); } - /// 炮弹飞行时间:抛物线轨迹到目标点的时间(自动求解发射角,下行段命中) - public static float EstimatedShellTime(float horizontalDist, float muzzleVelocity) - { - return ParabolicShellTime(horizontalDist, 0f, muzzleVelocity); - } - /// 抛物线飞行时间:解 tan(θ) 二次方程求到达 (horizontalDist, heightDiff) 的时间 public static float ParabolicShellTime(float horizontalDist, float heightDiff, float muzzleVelocity) { @@ -232,16 +226,6 @@ namespace CounterDrone.Core.Algorithms var denom = (float)Math.Pow(2f * (float)Math.PI, 1.5f) * sigmaY * sigmaY * sigmaZ; return denom > 0.001f ? sourceStrength / denom : 0f; } - - /// 高斯烟团某点浓度 C(x,y,z) — 简化:相对中心的偏移 - public static float GaussianConcentration(float q, float sx, float sy, float sz, float offsetY, float offsetZ) - { - var norm = q / ((float)Math.Pow(2f * (float)Math.PI, 1.5f) * sx * sy * sz); - var ey = (float)Math.Exp(-0.5f * offsetY * offsetY / (sy * sy)); - var ez = (float)Math.Exp(-0.5f * offsetZ * offsetZ / (sz * sz)); - var ezr = (float)Math.Exp(-0.5f * offsetZ * offsetZ / (sz * sz)); - return norm * ey * (ez + ezr); - } public static bool PointInPolygon(float px, float pz, ReadOnlySpan<(float X, float Z)> vertices) { if (vertices.Length < 3) return false; diff --git a/src/CounterDrone.Core/DefaultFireUnits.cs b/src/CounterDrone.Core/DefaultFireUnits.cs index 19756d8..7afd5c6 100644 --- a/src/CounterDrone.Core/DefaultFireUnits.cs +++ b/src/CounterDrone.Core/DefaultFireUnits.cs @@ -4,7 +4,7 @@ namespace CounterDrone.Core { public static class DefaultFireUnits { - private static List _cache; + private static List? _cache; public static List GetAll() { diff --git a/src/CounterDrone.Core/DefaultFormations.cs b/src/CounterDrone.Core/DefaultFormations.cs deleted file mode 100644 index d0fb979..0000000 --- a/src/CounterDrone.Core/DefaultFormations.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.Collections.Generic; - -namespace CounterDrone.Core -{ - public static class DefaultFormations - { - private static List _cache; - - public static List GetAll() - { - if (_cache != null) return _cache; - _cache = new List - { - new() { Id = "single", Name = "单机", FormationMode = 0, LateralCount = 1, LongitudinalCount = 1 }, - new() { Id = "line-abreast-3", Name = "3机横队", FormationMode = 1, LateralCount = 3, LongitudinalCount = 1, - LateralSpacing = 50 }, - new() { Id = "line-abreast-5", Name = "5机横队", FormationMode = 1, LateralCount = 5, LongitudinalCount = 1, - LateralSpacing = 50 }, - new() { Id = "column-3", Name = "3机纵队", FormationMode = 1, LateralCount = 1, LongitudinalCount = 3, - LongitudinalSpacing = 100 }, - new() { Id = "box-2x2", Name = "2×2方队", FormationMode = 1, LateralCount = 2, LongitudinalCount = 2, - LateralSpacing = 50, LongitudinalSpacing = 100 }, - new() { Id = "swarm-10", Name = "蜂群(10架)", FormationMode = 2, LateralCount = 10, LongitudinalCount = 1, - LateralSpacing = 30 }, - }; - return _cache; - } - - public static FormationTemplate GetById(string id) => GetAll().Find(t => t.Id == id); - } - - public class FormationTemplate - { - public string Id { get; set; } = ""; - public string Name { get; set; } = ""; - public int FormationMode { get; set; } - public int LateralCount { get; set; } = 1; - public int LongitudinalCount { get; set; } = 1; - public double LateralSpacing { get; set; } - public double LongitudinalSpacing { get; set; } - } -} diff --git a/src/CounterDrone.Core/Simulation/DroneEntity.cs b/src/CounterDrone.Core/Simulation/DroneEntity.cs index 8ecf7e2..2240195 100644 --- a/src/CounterDrone.Core/Simulation/DroneEntity.cs +++ b/src/CounterDrone.Core/Simulation/DroneEntity.cs @@ -14,7 +14,6 @@ namespace CounterDrone.Core.Simulation public float Wingspan { get; } public float TypicalSpeed { get; } public List Route { get; } - public int CurrentWaypointIndex { get; private set; } public float PosX { get; private set; } public float PosY { get; private set; } public float PosZ { get; private set; } @@ -25,8 +24,6 @@ namespace CounterDrone.Core.Simulation public float PrevX { get; private set; } public float PrevY { get; private set; } public float PrevZ { get; private set; } - public float FormationOffsetX { get; set; } - public float FormationOffsetY { get; set; } /// 沿航路已飞行弧长(米),由 RouteGeometry 驱动 private float _traveledArc; @@ -79,36 +76,19 @@ namespace CounterDrone.Core.Simulation } } - private void ApplyFormationOffset(int latIdx, float latSpacing, int longIdx, float longSpacing, FormationMode mode) - { - if (latIdx == 0 && longIdx == 0) return; - switch (mode) - { - case FormationMode.Formation: - FormationOffsetY = latIdx * latSpacing; - FormationOffsetX = -longIdx * longSpacing; - break; - case FormationMode.Swarm: - var rng = new Random((latIdx + longIdx * 100) * 137); - FormationOffsetX = (float)(rng.NextDouble() - 0.5) * latSpacing * 3; - FormationOffsetY = (float)(rng.NextDouble() - 0.5) * latSpacing * 3; - break; - } - } - public void SavePreviousPosition() { PrevX = PosX; PrevY = PosY; PrevZ = PosZ; } - public void Update(float deltaTime, float windSpeed, WindDirection windDir) + public void Update(float deltaTime) { if (Status != DroneStatus.Flying) return; if (Route.Count == 0) return; // 运动模型统一在 RouteGeometry:弧长推进 + 位置查询。 - // 无人机严格沿航路匀速飞行,不受风偏影响(风偏已移除,见风偏补偿说明)。 - // windSpeed/windDir 保留签名供未来飞控模型使用,当前不参与运动。 + // 无人机严格按航路匀速飞行。无人机不受风偏影响(真实无人机有飞控修正航向), + // 但云团受风偏影响(见 SimulationEngine 毁伤判定的云团参考系修正)。 float totalLen = RouteGeometry.TotalLength(Route); if (totalLen <= 0f) { diff --git a/src/CounterDrone.Core/Simulation/SimulationEngine.cs b/src/CounterDrone.Core/Simulation/SimulationEngine.cs index 3ef9ba9..4141624 100644 --- a/src/CounterDrone.Core/Simulation/SimulationEngine.cs +++ b/src/CounterDrone.Core/Simulation/SimulationEngine.cs @@ -28,12 +28,12 @@ namespace CounterDrone.Core.Simulation public IReadOnlyList Munitions => _munitions; public IReadOnlyList Events => _allEvents; - public event Action OnMunitionLaunched; - public event Action OnCloudGenerated; - public event Action OnDroneDestroyed; - public event Action OnDroneReachedTarget; - public event Action OnZoneIntruded; - public event Action OnSimulationEnded; + public event Action? OnMunitionLaunched; + public event Action? OnCloudGenerated; + public event Action? OnDroneDestroyed; + public event Action? OnDroneReachedTarget; + public event Action? OnZoneIntruded; + public event Action? OnSimulationEnded; private List _drones = new(); private List _platforms = new(); @@ -237,7 +237,7 @@ namespace CounterDrone.Core.Simulation // 5. 无人机移动 foreach (var drone in _drones.Where(d => d.Status == DroneStatus.Flying)) { - drone.Update(scaledDt, (float)_scene.WindSpeed, (WindDirection)_scene.WindDirection); + drone.Update(scaledDt); if (drone.Status == DroneStatus.ReachedTarget) { OnDroneReachedTarget?.Invoke(drone); @@ -257,14 +257,14 @@ namespace CounterDrone.Core.Simulation { float ccx = cloud.Dispersion.Center.X, ccy = cloud.Dispersion.Center.Y, ccz = cloud.Dispersion.Center.Z; // 无人机线段换算到云团参考系:相对位置 = drone - cloud - float inCloudTime = DamageAssessment.PathInSphere( + float inCloudDistance = DamageAssessment.PathInSphere( drone.PrevX - (ccx - cloudDx), drone.PrevY - (ccy - cloudDy), drone.PrevZ - (ccz - cloudDz), drone.PosX - ccx, drone.PosY - ccy, drone.PosZ - ccz, 0f, 0f, 0f, cloud.Dispersion.EffectiveRadius); - if (inCloudTime > 0 && cloud.Dispersion.CoreDensity >= (float)_ammoSpec.EffectiveConcentration) + if (inCloudDistance > 0 && cloud.Dispersion.CoreDensity >= (float)_ammoSpec.EffectiveConcentration) { - float exposureIncrement = inCloudTime / (drone.TypicalSpeed / 3.6f); + float exposureIncrement = inCloudDistance / (drone.TypicalSpeed / 3.6f); drone.ExposureTime += exposureIncrement; var dmg = _damageModel.CalculateDamage(drone.TargetType, drone.PowerType, cloud.AerosolType, cloud.Dispersion.CoreDensity, drone.ExposureTime, exposureIncrement); drone.ApplyDamage(dmg); diff --git a/src/Unity/Assets/Plugins/CounterDrone.Core/CounterDrone.Core.dll b/src/Unity/Assets/Plugins/CounterDrone.Core/CounterDrone.Core.dll index 34d7ca735bcfbe2009a778c70f0f072882c78af5..5e2c73cf9db50b6ff263768d6bd4fb7981bc0e8a 100644 GIT binary patch literal 125952 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 literal 135168 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 H68L`sfm>p` diff --git a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs index 7faf40c..6a395bb 100644 --- a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs +++ b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs @@ -72,7 +72,7 @@ namespace CounterDrone.Unity TotalMunitions = 3, AmmoTypes = new() { AerosolType.InertGas, AerosolType.ActiveMaterial, AerosolType.ActiveFuel }, }); - var result = new DefaultDefensePlanner(ammoCatalog, PlannerConfig.Load(paths)).Plan(fireUnits, new List { droneGroup }, detail.Scene); + var result = new DefensePlanner(ammoCatalog, PlannerConfig.Load(paths)).Plan(fireUnits, new List { droneGroup }, detail.Scene); scenarioMgr.SaveCloud(taskId, new CloudDispersal { PositionX = (droneGroup.Waypoints[0].PosX + droneGroup.Waypoints[^1].PosX) / 2, diff --git a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs index a459f71..e102a83 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs @@ -67,7 +67,7 @@ namespace CounterDrone.Unity // 推荐方案 var detail = scenario.GetTaskDetail(taskId); var ammoCatalog = db.Table().ToList(); - var planner = new DefaultDefensePlanner(ammoCatalog, PlannerConfig.Load(paths)); + var planner = new DefensePlanner(ammoCatalog, PlannerConfig.Load(paths)); var droneGroup = new DroneGroup { GroupId = "default", diff --git a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs index fcaa156..78ee901 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs @@ -48,7 +48,7 @@ namespace CounterDrone.Unity new RoutePlanRepository(_db), new WaypointRepository(_db)); _frameStore = new FrameDataStore(_paths); - _engine = new SimulationEngine(_scenario, _frameStore, new DamageModelRouter(), _paths, new DefaultDefensePlanner(DefaultAmmunition.GetAll(), PlannerConfig.Load(_paths))); + _engine = new SimulationEngine(_scenario, _frameStore, new DamageModelRouter(), _paths, new DefensePlanner(DefaultAmmunition.GetAll(), PlannerConfig.Load(_paths))); } public void LoadAndStart(string taskId) diff --git a/test/unit/CounterDrone.Core.Tests/DefensePlannerTests.cs b/test/unit/CounterDrone.Core.Tests/DefensePlannerTests.cs index 94af12c..81bb3d6 100644 --- a/test/unit/CounterDrone.Core.Tests/DefensePlannerTests.cs +++ b/test/unit/CounterDrone.Core.Tests/DefensePlannerTests.cs @@ -59,7 +59,7 @@ namespace CounterDrone.Core.Tests private PlannerResult Plan(List units, DroneGroup threat, CombatScene? env = null) - => new DefaultDefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(units, new() { threat }, env ?? new CombatScene()); + => new DefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(units, new() { threat }, env ?? new CombatScene()); // ═══════════════════════════════════════ // 威胁排序 @@ -233,7 +233,7 @@ namespace CounterDrone.Core.Tests [Fact] public void Allocation_MultiUnit_PoolsChannels() { - var result = new DefaultDefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan( + var result = new DefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan( new() { MakeGroundUnit("u0", 5000), MakeGroundUnit("u1", 5100) }, new() { MakeThreat(speed: 200) }, new CombatScene()); Assert.True(result.Best.ThreatsEngaged == 1); @@ -259,8 +259,8 @@ namespace CounterDrone.Core.Tests // 边界 // ═══════════════════════════════════════ - [Fact] public void Edge_NoUnits_Unengaged() => Assert.Equal(1, new DefaultDefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(new(), new() { MakeThreat() }, new CombatScene()).Best.ThreatsUnengaged); - [Fact] public void Edge_NoThreats_Empty() => Assert.Equal(0, new DefaultDefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(new() { MakeGroundUnit("u0", 5000) }, new(), new CombatScene()).Best.ThreatsEngaged); + [Fact] public void Edge_NoUnits_Unengaged() => Assert.Equal(1, new DefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(new(), new() { MakeThreat() }, new CombatScene()).Best.ThreatsUnengaged); + [Fact] public void Edge_NoThreats_Empty() => Assert.Equal(0, new DefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan(new() { MakeGroundUnit("u0", 5000) }, new(), new CombatScene()).Best.ThreatsEngaged); [Fact] public void Edge_OutOfRange_Ground() @@ -293,7 +293,7 @@ namespace CounterDrone.Core.Tests { var a = MakeThreat(PowerType.Piston, 120); a.GroupId = "g0"; var b = MakeThreat(PowerType.Jet, 300); b.GroupId = "g1"; - var result = new DefaultDefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan( + var result = new DefensePlanner(TestAmmo, TestPlannerConfig.Instance).Plan( new() { MakeGroundUnit("u0", 5000), MakeGroundUnit("u1", 5100) }, new() { a, b }, new CombatScene()); Assert.Equal(2, result.Best.ThreatsEngaged); diff --git a/test/unit/CounterDrone.Core.Tests/DroneEntityTests.cs b/test/unit/CounterDrone.Core.Tests/DroneEntityTests.cs index 748736e..9f19c51 100644 --- a/test/unit/CounterDrone.Core.Tests/DroneEntityTests.cs +++ b/test/unit/CounterDrone.Core.Tests/DroneEntityTests.cs @@ -44,7 +44,7 @@ namespace CounterDrone.Core.Tests var drone = new DroneEntity("d1", "g1", CreateConfig(), CreateRoute(0, 1000, 300, 120), 0, 50, 0, 0, FormationMode.Single); float prevX = drone.PosX; - drone.Update(1f, 0, WindDirection.N); + drone.Update(1f); Assert.True(drone.PosX > prevX); } @@ -53,7 +53,7 @@ namespace CounterDrone.Core.Tests { var drone = new DroneEntity("d1", "g1", CreateConfig(360), CreateRoute(0, 100, 300, 360), 0, 50, 0, 0, FormationMode.Single); - drone.Update(2f, 0, WindDirection.N); + drone.Update(2f); Assert.Equal(DroneStatus.ReachedTarget, drone.Status); } @@ -140,25 +140,25 @@ namespace CounterDrone.Core.Tests 0, 0, 0, 0, FormationMode.Single); // 推进到第一段中点(弧长 50):应在 X=50, Z=0 - drone.Update(50f / (60f / 3.6f), 0, WindDirection.N); + drone.Update(50f / (60f / 3.6f)); Assert.Equal(50f, drone.PosX, 1); Assert.Equal(0f, drone.PosZ, 1); Assert.Equal(DroneStatus.Flying, drone.Status); // 推进到拐点(弧长 100):应在 X=100, Z=0 - drone.Update(50f / (60f / 3.6f), 0, WindDirection.N); + drone.Update(50f / (60f / 3.6f)); Assert.Equal(100f, drone.PosX, 1); Assert.Equal(0f, drone.PosZ, 1); Assert.Equal(DroneStatus.Flying, drone.Status); // 推进到第二段中点(弧长 150):应在 X=100, Z=50 - drone.Update(50f / (60f / 3.6f), 0, WindDirection.N); + drone.Update(50f / (60f / 3.6f)); Assert.Equal(100f, drone.PosX, 1); Assert.Equal(50f, drone.PosZ, 1); Assert.Equal(DroneStatus.Flying, drone.Status); // 推进到终点(弧长 200):应在 X=100, Z=100,状态 ReachedTarget - drone.Update(50f / (60f / 3.6f), 0, WindDirection.N); + drone.Update(50f / (60f / 3.6f)); Assert.Equal(100f, drone.PosX, 1); Assert.Equal(100f, drone.PosZ, 1); Assert.Equal(DroneStatus.ReachedTarget, drone.Status); diff --git a/test/unit/CounterDrone.Core.Tests/EdgeCaseTests.cs b/test/unit/CounterDrone.Core.Tests/EdgeCaseTests.cs index 68cce2b..bcd447e 100644 --- a/test/unit/CounterDrone.Core.Tests/EdgeCaseTests.cs +++ b/test/unit/CounterDrone.Core.Tests/EdgeCaseTests.cs @@ -65,7 +65,7 @@ namespace CounterDrone.Core.Tests }); var engine = new SimulationEngine(_scenario, new FrameDataStore(new TestPathProvider(_testDir)), - new DamageModelRouter(), new TestPathProvider(_testDir), new DefaultDefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); + new DamageModelRouter(), new TestPathProvider(_testDir), new DefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); engine.Initialize(_taskId); engine.TimeScale = 4f; @@ -107,7 +107,7 @@ namespace CounterDrone.Core.Tests }); var engine = new SimulationEngine(_scenario, new FrameDataStore(new TestPathProvider(_testDir)), - new DamageModelRouter(), new TestPathProvider(_testDir), new DefaultDefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); + new DamageModelRouter(), new TestPathProvider(_testDir), new DefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); engine.Initialize(_taskId); engine.TimeScale = 4f; @@ -148,7 +148,7 @@ namespace CounterDrone.Core.Tests }); var engine = new SimulationEngine(_scenario, new FrameDataStore(new TestPathProvider(_testDir)), - new DamageModelRouter(), new TestPathProvider(_testDir), new DefaultDefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); + new DamageModelRouter(), new TestPathProvider(_testDir), new DefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); engine.Initialize(_taskId); engine.TimeScale = 4f; diff --git a/test/unit/CounterDrone.Core.Tests/FullPipelineTests.cs b/test/unit/CounterDrone.Core.Tests/FullPipelineTests.cs index 2f2705d..9b25a8c 100644 --- a/test/unit/CounterDrone.Core.Tests/FullPipelineTests.cs +++ b/test/unit/CounterDrone.Core.Tests/FullPipelineTests.cs @@ -49,7 +49,7 @@ namespace CounterDrone.Core.Tests private SimulationEngine RunSimulation(int maxTicks, float tickDt = 1f / 20f, float timeScale = 8f) { - var engine = new SimulationEngine(_scenario, _frameStore, new DamageModelRouter(), _paths, new DefaultDefensePlanner(_ammoCatalog, TestPlannerConfig.Instance)); + var engine = new SimulationEngine(_scenario, _frameStore, new DamageModelRouter(), _paths, new DefensePlanner(_ammoCatalog, TestPlannerConfig.Instance)); engine.Initialize(_taskId); engine.TimeScale = timeScale; // 8倍速加速 diff --git a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs index 66db8b5..cb873ef 100644 --- a/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs +++ b/test/unit/CounterDrone.Core.Tests/SimulationEngineTests.cs @@ -36,7 +36,7 @@ namespace CounterDrone.Core.Tests new RoutePlanRepository(_mainDb), new WaypointRepository(_mainDb)); _engine = new SimulationEngine(_scenarioService, new FrameDataStore(paths), - new DamageModelRouter(), paths, new DefaultDefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); + new DamageModelRouter(), paths, new DefensePlanner(DefaultAmmunition.GetAll(), TestPlannerConfig.Instance)); } public void Dispose()