feat(tests): update tests to use GBM for random data generation; improve consistency and realism in Skew and Variance tests; refine validation logic in Beta tests

This commit is contained in:
Miha Kralj
2025-12-26 12:05:07 -08:00
parent c2bc665ecf
commit 9c113767ec
5 changed files with 30 additions and 17 deletions
+1 -1
View File
@@ -93,7 +93,7 @@ public class BetaValidationTests : IDisposable
double ql = qlBeta[i];
// Skender might return null/0 for warmup.
if (sk != 0)
if (Math.Abs(sk) > 1e-10)
{
Assert.Equal(sk, ql, ValidationHelper.DefaultTolerance);
}
+2 -2
View File
@@ -176,11 +176,11 @@ public class SkewTests
{
// Run for > 1000 updates to trigger Resync
var skew = new Skew(10);
var random = new Random(123);
var gbm = new GBM(startPrice: 100, mu: 0.05, sigma: 0.2, seed: 123);
for (int i = 0; i < 1100; i++)
{
skew.Update(new TValue(DateTime.UtcNow, random.NextDouble() * 100));
skew.Update(new TValue(DateTime.UtcNow, gbm.Next().Close));
}
Assert.True(double.IsFinite(skew.Last.Value));
+2 -2
View File
@@ -154,11 +154,11 @@ public class VarianceTests
{
// Run for > 1000 updates to trigger Resync
var variance = new Variance(10);
var random = new Random(123);
var gbm = new GBM(startPrice: 100, mu: 0.05, sigma: 0.2, seed: 123);
for (int i = 0; i < 1100; i++)
{
variance.Update(new TValue(DateTime.UtcNow, random.NextDouble() * 100));
variance.Update(new TValue(DateTime.UtcNow, gbm.Next().Close));
}
Assert.True(double.IsFinite(variance.Last.Value));