mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-18 18:48:05 +00:00
normalization of methods
This commit is contained in:
@@ -251,7 +251,7 @@ public class CorrelationTests
|
||||
seriesY.Add(new TValue(DateTime.UtcNow.AddMinutes(i), 200.0 + (i * 2)));
|
||||
}
|
||||
|
||||
var result = Correlation.Calculate(seriesX, seriesY, 5);
|
||||
var result = Correlation.Batch(seriesX, seriesY, 5);
|
||||
|
||||
Assert.Equal(20, result.Count);
|
||||
}
|
||||
@@ -271,7 +271,7 @@ public class CorrelationTests
|
||||
seriesY.Add(new TValue(DateTime.UtcNow.AddMinutes(i), 200.0 + i));
|
||||
}
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Calculate(seriesX, seriesY, 5));
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Batch(seriesX, seriesY, 5));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -287,7 +287,7 @@ public class CorrelationTests
|
||||
seriesY[i] = 200.0 + (i * 2);
|
||||
}
|
||||
|
||||
Correlation.Calculate(seriesX, seriesY, output, 5);
|
||||
Correlation.Batch(seriesX, seriesY, output, 5);
|
||||
|
||||
// First value should be NaN (not enough data)
|
||||
Assert.True(double.IsNaN(output[0]));
|
||||
@@ -303,7 +303,7 @@ public class CorrelationTests
|
||||
double[] seriesY = new double[15];
|
||||
double[] output = new double[10];
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Calculate(seriesX, seriesY, output, 5));
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Batch(seriesX, seriesY, output, 5));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -313,7 +313,7 @@ public class CorrelationTests
|
||||
double[] seriesY = new double[20];
|
||||
double[] output = new double[10];
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Calculate(seriesX, seriesY, output, 5));
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Batch(seriesX, seriesY, output, 5));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -323,7 +323,7 @@ public class CorrelationTests
|
||||
double[] seriesY = new double[20];
|
||||
double[] output = new double[20];
|
||||
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Calculate(seriesX, seriesY, output, 1));
|
||||
Assert.Throws<ArgumentException>(() => Correlation.Batch(seriesX, seriesY, output, 1));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -374,7 +374,7 @@ public class CorrelationTests
|
||||
|
||||
// Batch calculation
|
||||
double[] batchResults = new double[length];
|
||||
Correlation.Calculate(seriesX, seriesY, batchResults, period);
|
||||
Correlation.Batch(seriesX, seriesY, batchResults, period);
|
||||
|
||||
// Compare last 50 values (after warmup)
|
||||
for (int i = length - 50; i < length; i++)
|
||||
|
||||
@@ -190,7 +190,7 @@ public class CorrelationValidationTests
|
||||
}
|
||||
|
||||
// Batch calculation
|
||||
var batchResult = Correlation.Calculate(seriesX, seriesY, 20);
|
||||
var batchResult = Correlation.Batch(seriesX, seriesY, 20);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Correlation(20);
|
||||
@@ -227,7 +227,7 @@ public class CorrelationValidationTests
|
||||
}
|
||||
|
||||
// Span calculation
|
||||
Correlation.Calculate(seriesX, seriesY, output, 20);
|
||||
Correlation.Batch(seriesX, seriesY, output, 20);
|
||||
|
||||
// Streaming calculation
|
||||
var streamingIndicator = new Correlation(20);
|
||||
|
||||
@@ -113,7 +113,7 @@ public sealed class Correlation : AbstractBase
|
||||
/// <remarks>Not supported for bi-input indicator. Use Calculate(seriesX, seriesY, period) instead.</remarks>
|
||||
public override TSeries Update(TSeries source)
|
||||
{
|
||||
throw new NotSupportedException("Correlation requires two inputs. Use Calculate(seriesX, seriesY, period).");
|
||||
throw new NotSupportedException("Correlation requires two inputs. Use Batch(seriesX, seriesY, period).");
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
@@ -286,7 +286,7 @@ public sealed class Correlation : AbstractBase
|
||||
/// <summary>
|
||||
/// Calculates correlation for two time series.
|
||||
/// </summary>
|
||||
public static TSeries Calculate(TSeries seriesX, TSeries seriesY, int period = 20)
|
||||
public static TSeries Batch(TSeries seriesX, TSeries seriesY, int period = 20)
|
||||
{
|
||||
if (seriesX.Count != seriesY.Count)
|
||||
{
|
||||
@@ -313,7 +313,7 @@ public sealed class Correlation : AbstractBase
|
||||
/// <summary>
|
||||
/// Static batch calculation for span-based processing.
|
||||
/// </summary>
|
||||
public static void Calculate(
|
||||
public static void Batch(
|
||||
ReadOnlySpan<double> seriesX,
|
||||
ReadOnlySpan<double> seriesY,
|
||||
Span<double> output,
|
||||
@@ -342,4 +342,12 @@ public sealed class Correlation : AbstractBase
|
||||
output[i] = result.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static (TSeries Results, Correlation Indicator) Calculate(TSeries seriesX, TSeries seriesY, int period = 20)
|
||||
{
|
||||
var indicator = new Correlation(period);
|
||||
TSeries results = Batch(seriesX, seriesY, period);
|
||||
return (results, indicator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user