using RobotNet10.NavigationTune.Shared.Models; namespace RobotNet10.NavigationTune.Shared.Interfaces; /// /// Metrics calculator interface /// public interface IMetricsCalculator { /// /// Calculate complete test metrics /// TestMetrics CalculateMetrics( List telemetryData, ReferencePath referencePath ); /// /// Calculate tracking accuracy metrics /// TrackingAccuracyMetrics CalculateTrackingAccuracy( List telemetryData, ReferencePath referencePath ); /// /// Calculate smoothness metrics /// SmoothnessMetrics CalculateSmoothness( List telemetryData ); /// /// Calculate efficiency metrics /// EfficiencyMetrics CalculateEfficiency( List telemetryData, ReferencePath referencePath ); /// /// Calculate overall score /// double CalculateOverallScore( TestMetrics metrics, ScoringWeights weights ); } /// /// Scoring weights for different metric categories /// public class ScoringWeights { public double TrackingAccuracy { get; set; } = 0.5; // 50% public double Smoothness { get; set; } = 0.3; // 30% public double Efficiency { get; set; } = 0.2; // 20% }