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
+6 -6
View File
@@ -352,7 +352,7 @@ public class DsmaTests
// Act - Span
var spanOutput = new double[values.Length];
Dsma.Calculate(values, spanOutput, period, scale);
Dsma.Batch(values, spanOutput, period, scale);
// Assert
for (int i = 0; i < values.Length; i++)
@@ -386,7 +386,7 @@ public class DsmaTests
// Act - Span
var spanOutput = new double[values.Length];
Dsma.Calculate(values, spanOutput, period, scale);
Dsma.Batch(values, spanOutput, period, scale);
// Assert
for (int i = 0; i < values.Length; i++)
@@ -439,7 +439,7 @@ public class DsmaTests
// Act & Assert
var ex = Assert.Throws<ArgumentException>(() =>
Dsma.Calculate(source, shortOutput, period: 10));
Dsma.Batch(source, shortOutput, period: 10));
Assert.Equal("output", ex.ParamName);
}
@@ -457,7 +457,7 @@ public class DsmaTests
var output = new double[50];
// Act
Dsma.Calculate(values, output, period: 10, scaleFactor: 0.5);
Dsma.Batch(values, output, period: 10, scaleFactor: 0.5);
// Assert
Assert.All(output, val => Assert.True(double.IsFinite(val)));
@@ -477,7 +477,7 @@ public class DsmaTests
var output = new double[100];
// Act
Dsma.Calculate(values, output, period: 10, scaleFactor: 0.5);
Dsma.Batch(values, output, period: 10, scaleFactor: 0.5);
// Assert
Assert.All(output.Take(50), val => Assert.True(double.IsFinite(val)));
@@ -493,7 +493,7 @@ public class DsmaTests
var output = new double[20];
// Act
Dsma.Calculate(values, output, period: 5, scaleFactor: 0.5);
Dsma.Batch(values, output, period: 5, scaleFactor: 0.5);
// Assert
Assert.All(output, val => Assert.True(double.IsFinite(val)));
+9 -2
View File
@@ -316,7 +316,7 @@ public sealed class Dsma : AbstractBase
/// <param name="period">Lookback period (≥2)</param>
/// <param name="scaleFactor">Scaling factor (0.01-0.9)</param>
/// <exception cref="ArgumentException">If output span is shorter than source</exception>
public static void Calculate(ReadOnlySpan<double> source,
public static void Batch(ReadOnlySpan<double> source,
Span<double> output,
int period,
double scaleFactor = 0.5)
@@ -332,4 +332,11 @@ public sealed class Dsma : AbstractBase
output[i] = dsma.Step(source[i], isNew: true);
}
}
}
public static (TSeries Results, Dsma Indicator) Calculate(TSeries source, int period, double scaleFactor = 0.5)
{
var indicator = new Dsma(period, scaleFactor);
TSeries results = indicator.Update(source);
return (results, indicator);
}
}