mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-24 05:28:05 +00:00
normalization of methods
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user