< Summary

Information
Class: CounterDrone.Core.Algorithms.DamageModelRouter
Assembly: CounterDrone.Core
File(s): C:\Users\Tellme\apps\CounterDroneBackend\src\CounterDrone.Core\Algorithms\DamageModelRouter.cs
Line coverage
94%
Covered lines: 17
Uncovered lines: 1
Coverable lines: 18
Total lines: 32
Line coverage: 94.4%
Branch coverage
90%
Covered branches: 9
Total branches: 10
Branch coverage: 90%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
CalculateDamage(...)75%4488.88%
GetDamageStage(...)100%66100%

File(s)

C:\Users\Tellme\apps\CounterDroneBackend\src\CounterDrone.Core\Algorithms\DamageModelRouter.cs

#LineLine coverage
 1using CounterDrone.Core.Models;
 2
 3namespace CounterDrone.Core.Algorithms
 4{
 5    /// <summary>毁伤模型路由器 — 根据气溶胶类型分派</summary>
 6    public class DamageModelRouter : IDamageModel
 7    {
 148        private readonly InertGasDamageModel _inertGas = new();
 149        private readonly ActiveMaterialDamageModel _activeMaterial = new();
 1410        private readonly ActiveFuelDamageModel _activeFuel = new();
 11
 12        public float CalculateDamage(TargetType droneType, PowerType powerType,
 13            AerosolType aerosolType, float cloudDensity, float exposureTime, float deltaTime)
 2814        {
 2815            return aerosolType switch
 2816            {
 2517                AerosolType.InertGas => _inertGas.CalculateDamage(droneType, powerType, aerosolType, cloudDensity, expos
 218                AerosolType.ActiveMaterial => _activeMaterial.CalculateDamage(droneType, powerType, aerosolType, cloudDe
 119                AerosolType.ActiveFuel => _activeFuel.CalculateDamage(droneType, powerType, aerosolType, cloudDensity, e
 020                _ => 0f,
 2821            };
 2822        }
 23
 24        public DamageStage GetDamageStage(float accumulatedDamage)
 554425        {
 554626            if (accumulatedDamage >= 1.0f) return DamageStage.Destroyed;
 554627            if (accumulatedDamage >= 0.6f) return DamageStage.AttitudeLoss;
 554228            if (accumulatedDamage >= 0.25f) return DamageStage.EngineAnomaly;
 553429            return DamageStage.Normal;
 554430        }
 31    }
 32}