Commit Graph

44 Commits

Author SHA1 Message Date
fe7eb723a1 refactor: 清除 SimEvent alias 遗留——统一使用 using CounterDrone.Core.Simulation 2026-06-13 11:50:49 +08:00
ced8d4014a refactor: 删除未使用的 Models.SimEvent,消除 SimEvent 重名
- 删除 Models/SimEvent.cs(DB表定义,无人读写)
- 删除 DatabaseManager 中 CreateTable<SimEvent> 和 CreateIndex
- DatabaseManagerTests 表数量 13→12
2026-06-13 11:46:31 +08:00
f4be469e72 fix: 空基巡逻点靠近目标 + 飞行时间优化,141测试全通过
- 空基巡逻点从5000→6000→6500,靠近中点7500
- Piston/Jet/AirBased 全部击毁
- 141测试全通过
2026-06-13 11:30:02 +08:00
c08d613d5b test: 引擎空基/地基发射类型单元测试 + Planner覆盖全面测试
- SimulationEngineTests: AirBased_LaunchesWithCorrectDescription (空基描述="空基投放")
- SimulationEngineTests: GroundBased_LaunchesWithCorrectDescription (地基描述="计划发射")
- DefensePlannerTests: 23个全覆盖(威胁排序/弹药匹配/地基弹道/空基弹道/分配/边界/多威胁/临界)
- FullPipeline AirBased: 加入事件描述诊断断言
2026-06-13 11:27:00 +08:00
7fa0268463 fix: 空基 FireEvent.MuzzleVelocity=0 + 空基弹道单元测试
- GenerateFireEventsAt: 空基时 MuzzleVelocity=0(而非800)
- 新增 AirBased_FireTime_EarlierThanArrival 验证提前量
- 新增 AirBased_FireTime_EarlierThanGroundBased 验证空基更早
- 新增 AirBased_NoMuzzleVelocityInFireEvent 验证 MuzzleVelocity=0
- 空基弹道计算本身正确(recommendedTiming - flightTime - fallTime)
2026-06-13 11:05:34 +08:00
c610573e34 fix: 物理间隔错开发射 — 云团直径/无人机速度,非硬件间隔
- 跨 FireUnit 按 physicsInterval = max(ChannelInterval, cloudDiameter/droneSpeed) 错开发射时间
- Piston 200km/h 测试通过(被摧毁=1)
- Jet 500km/h 测试通过(被摧毁=1)
2026-06-13 10:55:58 +08:00
08427e9e08 feat: 新增轻型地基火力单元模板(2炮×4通道); Piston测试使用 ground-light×2 2026-06-13 10:46:41 +08:00
c08edbd2f9 feat: 火力单元通道模型 + 默认配置 + 引擎通道展开
- FireUnit: 新增 GunCount/ChannelsPerGun/ChannelInterval/检测设备字段
- EquipmentDeployment: 新增 GunCount/ChannelsPerGun/ChannelInterval
- DefaultFireUnits: 3 种默认火力单元(标准地基/重地基/空基)
- Planner: 逐通道齐射分配,ChannelInterval 错开,Cooldown 轮次
- Engine: PlatformEntity 按 GunCount×ChannelsPerGun 展开
- BuildFireUnits: 与引擎同步展开通道
- FullPipelineTests: 使用 DefaultFireUnits 配置
2026-06-13 10:42:08 +08:00
9bd1d5a7ee test: 收紧集成测试断言 — 击毁才通过,暴露 Planner 真实场景不足
- 删除 ApplyDefensePlan helper(引擎自治,不再需要外部调Planner)
- Piston 200km/h: 断言 DroneStatus==Destroyed(当前 FAIL)
- Jet 500km/h: 断言 DroneStatus==Destroyed
- AirBased 300km/h: 断言 DroneStatus==Destroyed(当前 FAIL)
- 测试真实暴露 Planner 算法缺陷
2026-06-13 10:06:05 +08:00
50ec14bb24 refactor: 引擎自治 — 不再需要外部传 SetFireSchedule
- SimulationEngine.Initialize 内建 BuildFireUnits/BuildDroneGroups → 自动调 Planner
- 删除 FullPipelineTests 中的 BuildFireSchedule/_lastFireSchedule/手动 SetFireSchedule
- Unity Managers 删除手动 SetFireSchedule 调用
- 引擎是 Planner 的唯一调用者,测试和 UI 不再碰火控逻辑
2026-06-13 09:58:11 +08:00
4411a452dc fix: Quantity expand + PlatformIndex 映射修正
- ApplyDefensePlan 展开 EquipmentDeployment.Quantity → 多个 FireUnit
- Planner 分配后用 fireUnits.IndexOf 修正 PlatformIndex
- 新增 FullPipeline_Piston_VerifiesRoundAllocation 验证 ≥8 发
- Piston 集成测试加入计划大小断言
2026-06-13 09:50:24 +08:00
b957a5e2b4 feat: Planner 使用真实物理计算 + 完善单元测试 + 规则7
- ComputeEffectiveRadius: 基于 AmmunitionSpec 三阶段扩散模型
- CalcRoundsNeeded: 真实有效半径和弹药参数
- GenerateFireEvents: recommendedTiming = arrivalTime - expansionTime
- 候选概率基于真实覆盖计算
- 24 个单元测试覆盖威胁排序/弹药匹配/候选过滤/弹药数/时机/多威胁/空基
- AGENTS.md 规则7: 只跑相关测试,不跑全量
2026-06-13 09:30:04 +08:00
317f47280b refactor: DefensePlanner 替代 DefenseAdvisor
- 新增 IDefensePlanner 接口 + DefaultDefensePlanner 实现
- FireUnit 重构为统一平台模型(Type/Position/CruiseSpeed/ReleaseAltitude/MuzzleVelocity)
- DroneGroup 加入威胁指数(类型系数×速度系数)和优先级排序
- 五步流水线:威胁排序→弹药匹配→候选生成→贪心分配→时序生成
- 弹药精确匹配,不降级;临界方案基于50%概率阈值
- 删除 IDefenseAdvisor/DefaultDefenseAdvisor/RecommendMultiGroup
- AlgorithmFactory 注册 IDefensePlanner
- 测试更新:DefensePlannerTests 替代旧测试,FullPipelineTests 适配新 API
- Unity Managers 更新调用
- 125 测试全通过
2026-06-12 18:20:25 +08:00
0a3c444a4b refactor: 推荐算法统一处理空基/地基平台类型
- ThreatProfile 新增 PreferredPlatformType 字段
- DefaultDefenseAdvisor 根据平台类型正确计算 FireTime/CruiseSpeed/ReleaseAltitude
- 空基:FireTime 提前扣除飞行+下落时间;地基:保持原逻辑
- 删除 SimulationEngine.AdjustFireTimesForAirBased(引擎不再做适配)
- 集成测试直接用 PreferredPlatformType 驱动空基方案
- 实施文档同步
2026-06-12 17:52:44 +08:00
c4d9ccc4fa feat: 空基平台飞行与投弹功能
- PlatformEntity: 新增状态机 Idle→FlyingToTarget→ReadyToRelease
- EquipmentDeployment: 新增 CruiseSpeed 字段(空基平台巡航速度)
- MunitionEntity: 空投弹药继承载机速度矢量,替代自由落体
- Kinematics: 新增 AirDropPosition/AirDropFallTime/DirectionVelocity 工具方法
- SimulationEngine: 空基平台先飞后投,AdjustFireTimesForAirBased 补偿飞行耗时
- SimulationRunner: 空基平台 3D 可视化(蓝色 Capsule)
- 集成测试 Scenario_AirBased_PlatformFliesAndDrops 通过(8x 加速)
- 实施文档同步进度
2026-06-12 17:38:21 +08:00
6030b8de07 RecommendMultiGroup: 多编队火力分配 + 专一弹药优先 + 130测试通过 2026-06-12 15:46:05 +08:00
12cb6576fe 多批次Phase1: RoutePlan改Id主键+Waypoint加GroupId+ScenarioService/Engine/所有测试适配 2026-06-12 15:33:37 +08:00
3e12dba143 ICloudDispersionModel加Elapsed属性 + 帧数据输出云团存在时间 2026-06-12 14:25:23 +08:00
c3e1fc797e fix: MockDispersion实现Phase属性 2026-06-12 14:22:05 +08:00
50b7bd7f69 测试任务名改为描述性名称 2026-06-12 11:59:12 +08:00
2d1243f729 报告增强: 环境/目标/时间线/emoji, 129测试通过 2026-06-12 11:41:40 +08:00
e3486e5bdf FireEvent移入Algorithms, Advisor生成FireSchedule, 引擎/测试零对齐逻辑, 129测试通过 2026-06-12 11:36:15 +08:00
98e16ea720 CloudDispersal加SalvoRounds/Spacing, FireSchedule按间隔展开云团, 拦截成功 2026-06-12 11:32:17 +08:00
2d14c17d9c 默认弹药改为JSON文件导入 + DatabaseManager种子数据 + 测试手动插入, 129测试通过 2026-06-12 11:17:59 +08:00
6a184d9bf8 推荐算法ComputeEffectiveRadius用高斯公式,BuildFireSchedule去掉算法逻辑,129测试通过 2026-06-12 11:03:30 +08:00
c060030e0a 默认弹药参数校准:爆发药1.5kg(发烟罐典型值) + 三阶段扩散模型 + 集成测试流程验证, 129测试通过 2026-06-12 10:47:54 +08:00
d2b139a08f 忽略 test/reports/ coverage_report/ TestResults/ 2026-06-11 16:49:20 +08:00
2697225aff 添加 .editorconfig + dotnet format 格式化全部代码 2026-06-11 16:48:22 +08:00
cde7702b12 Phase 7.6: README更新 + 公开API XML文档注释, 128测试 2026-06-11 16:45:46 +08:00
c28954335c Phase 7: 删EventQueue死代码 + ReadFrames/AirBased/DeleteByTaskId测试, 覆盖率95.4%, 128测试 2026-06-11 16:42:41 +08:00
be671c132e Phase 7: 删死代码DetectionEntity + TestPathProvider测试 + Swarm测试, 覆盖率93.5%, 123测试 2026-06-11 16:38:14 +08:00
60b5e8d952 Phase 7: TTL清理 + 边界测试(空部署/强风/超长航路), 122测试9秒完成 2026-06-11 16:32:37 +08:00
6a86a33e79 集成测试报告输出到 test/reports/ 目录 2026-06-11 16:27:41 +08:00
5b168f202e ReportService 添加 ExportToFile, 集成测试验证报告文件输出, 116测试5秒完成 2026-06-11 16:12:56 +08:00
4db30131e9 Phase 5+: 集成测试加入报告生成验证, 118测试4秒完成 2026-06-11 16:05:32 +08:00
aea15e6ec6 Phase 5: 报告生成 — ReportGenerator + ReportService, 116测试4秒完成 2026-06-11 16:00:13 +08:00
eb347b3bb0 Phase 4: TimeScale加速仿真, 109测试5秒完成 2026-06-11 15:56:15 +08:00
6c4a84ffff Phase 4-5 完成: 4个端到端集成测试全通过 + DefenseAdvisor弹药驱动 + 引擎纯执行器 + Kinematics工具类,109测试 2026-06-11 15:52:39 +08:00
615c2bea3b Phase 4-5: DefenseAdvisor重构 — 弹药规格驱动、输入校验、多轮次CloudSalvo;引擎改为纯执行器;Kinematics工具类 2026-06-11 15:24:25 +08:00
2ef16d083c Phase 4 重构: 仿真引擎改为纯执行器 + Kinematics工具类 + 4个端到端场景(2个通过) 2026-06-11 15:09:53 +08:00
3dd0ea6cc9 Phase 4: 仿真引擎 — 6个实体类、8阶段Tick、FrameDataStore分库、7个集成测试,80个测试全部通过 2026-06-11 14:27:21 +08:00
dc4ebc3f09 Phase 3: 算法层 — 高斯烟团扩散模型、3种毁伤模型、DefenseAdvisor、AlgorithmFactory,73个测试全部通过 2026-06-11 14:17:43 +08:00
b33a6a87e1 Phase 2: 想定管理 — 8个Repository + ScenarioService(CRUD/5步保存/搜索分页),47个测试全部通过 2026-06-11 14:13:35 +08:00
b23291c5bf Phase 1: 核心基础 — 项目骨架、数据模型、Repository、ModelService/GroupService,27个单元测试全部通过 2026-06-11 14:08:37 +08:00