< Summary

Class:MaxSpeedAssignment
Assembly:bamlab.micromissiles
File(s):/github/workspace/Assets/Scripts/Assignment/MaxSpeedAssignment.cs
Covered lines:7
Uncovered lines:1
Coverable lines:8
Total lines:22
Line coverage:87.5% (7 of 8)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:2
Method coverage:100% (2 of 2)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
MaxSpeedAssignment(...)0%110100%
CalculateSpeedLoss(...)0%2.062075%

File(s)

/github/workspace/Assets/Scripts/Assignment/MaxSpeedAssignment.cs

#LineLine coverage
 1using UnityEngine;
 2
 3// The maximum speed assignment assigns hierarchical agents to hierarchical agents by maximizing the
 4// overall intercept speed. The assignment cost is defined as the agent's fractional speed loss
 5// during the maneuver.
 6public class MaxSpeedAssignment : CostBasedAssignment {
 7  // Minimum fractional speed to prevent division by zero.
 8  private const float _minFractionalSpeed = 1e-6f;
 9
 10  public MaxSpeedAssignment(AssignDelegate assignFunction)
 311      : base(CalculateSpeedLoss, assignFunction) {}
 12
 3113  private static float CalculateSpeedLoss(IHierarchical hierarchical, IHierarchical target) {
 3114    if (hierarchical is not HierarchicalAgent hierarchicalAgent) {
 015      return 0;
 16    }
 17
 3118    IAgent agent = hierarchicalAgent.Agent;
 3119    float fractionalSpeed = FractionalSpeed.Calculate(agent, target.Position);
 3120    return agent.Speed / Mathf.Max(fractionalSpeed, _minFractionalSpeed);
 3121  }
 22}