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
@@ -186,7 +186,7 @@ public class WmapeTests
predictedSeries.Add(bar.Time, bar.Close * (1 + (i % 2 == 0 ? 0.02 : -0.02)));
}
var batchResults = Wmape.Calculate(actualSeries, predictedSeries, DefaultPeriod);
var batchResults = Wmape.Batch(actualSeries, predictedSeries, DefaultPeriod);
var iterativeResults = new List<double>();
for (int i = 0; i < actualSeries.Count; i++)
@@ -236,7 +236,7 @@ public class WmapeTests
predictedArr[i] = pred;
}
var tseriesResult = Wmape.Calculate(actualSeries, predictedSeries, DefaultPeriod);
var tseriesResult = Wmape.Batch(actualSeries, predictedSeries, DefaultPeriod);
Wmape.Batch(actualArr.AsSpan(), predictedArr.AsSpan(), output.AsSpan(), DefaultPeriod);
for (int i = 0; i < 100; i++)
@@ -285,7 +285,7 @@ public class WmapeTests
predicted.Add(DateTime.UtcNow.Ticks, 98);
Assert.Throws<ArgumentException>(() => Wmape.Calculate(actual, predicted, DefaultPeriod));
Assert.Throws<ArgumentException>(() => Wmape.Batch(actual, predicted, DefaultPeriod));
}
[Fact]
+10 -3
View File
@@ -138,7 +138,7 @@ public sealed class Wmape : AbstractBase
public override TSeries Update(TSeries source)
{
throw new NotSupportedException("WMAPE requires two inputs. Use Calculate(actualSeries, predictedSeries, period).");
throw new NotSupportedException("WMAPE requires two inputs. Use Batch(actualSeries, predictedSeries, period).");
}
public override void Prime(ReadOnlySpan<double> source, TimeSpan? step = null)
@@ -155,7 +155,7 @@ public sealed class Wmape : AbstractBase
Last = default;
}
public static TSeries Calculate(TSeries actual, TSeries predicted, int period)
public static TSeries Batch(TSeries actual, TSeries predicted, int period)
{
if (actual.Count != predicted.Count)
{
@@ -345,4 +345,11 @@ public sealed class Wmape : AbstractBase
}
}
}
}
public static (TSeries Results, Wmape Indicator) Calculate(TSeries actual, TSeries predicted, int period)
{
var indicator = new Wmape(period);
TSeries results = Batch(actual, predicted, period);
return (results, indicator);
}
}