normalization of methods

This commit is contained in:
Miha Kralj
2026-02-10 21:33:16 -08:00
parent 915d7a007b
commit 6d6259a47d
527 changed files with 10525 additions and 2123 deletions
+3 -3
View File
@@ -217,7 +217,7 @@ public class SmapeTests
iterativeResults.Add(smapeIterative.Update(actualSeries[i], predictedSeries[i]).Value);
}
var batchResults = Smape.Calculate(actualSeries, predictedSeries, 10);
var batchResults = Smape.Batch(actualSeries, predictedSeries, 10);
Assert.Equal(iterativeResults.Count, batchResults.Count);
for (int i = 0; i < iterativeResults.Count; i++)
@@ -261,7 +261,7 @@ public class SmapeTests
predictedSeries.Add(bar.Time, bar.Close * 0.95);
}
var tseriesResult = Smape.Calculate(actualSeries, predictedSeries, 10);
var tseriesResult = Smape.Batch(actualSeries, predictedSeries, 10);
Smape.Batch(actualArr.AsSpan(), predictedArr.AsSpan(), output.AsSpan(), 10);
for (int i = 0; i < 100; i++)
@@ -295,7 +295,7 @@ public class SmapeTests
actual.Add(DateTime.UtcNow.Ticks + 1, 100);
predicted.Add(DateTime.UtcNow.Ticks, 90);
Assert.Throws<ArgumentException>(() => Smape.Calculate(actual, predicted, 5));
Assert.Throws<ArgumentException>(() => Smape.Batch(actual, predicted, 5));
}
[Fact]
+9 -2
View File
@@ -43,7 +43,7 @@ public sealed class Smape : BiInputIndicatorBase
/// <summary>
/// Calculates SMAPE for entire series.
/// </summary>
public static TSeries Calculate(TSeries actual, TSeries predicted, int period)
public static TSeries Batch(TSeries actual, TSeries predicted, int period)
=> CalculateImpl(actual, predicted, period, Batch);
/// <summary>
@@ -70,6 +70,13 @@ public sealed class Smape : BiInputIndicatorBase
ErrorHelpers.ApplyRollingMean(symErrors, output, period);
}
public static (TSeries Results, Smape Indicator) Calculate(TSeries actual, TSeries predicted, int period)
{
var indicator = new Smape(period);
TSeries results = Batch(actual, predicted, period);
return (results, indicator);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void ComputeSmapeErrors(ReadOnlySpan<double> actual, ReadOnlySpan<double> predicted, Span<double> output)
{
@@ -122,4 +129,4 @@ public sealed class Smape : BiInputIndicatorBase
output[i] = sumAbs > Epsilon ? 200.0 * absDiff / sumAbs : 0.0;
}
}
}
}