python wrapper

This commit is contained in:
Miha Kralj
2026-02-28 14:14:35 -08:00
parent 82e0248eb0
commit 83e9511261
521 changed files with 62395 additions and 15669 deletions
+47
View File
@@ -1,7 +1,9 @@
using Skender.Stock.Indicators;
using TALib;
namespace QuanTAlib.Test;
using QuanTAlib.Tests;
using Xunit;
/// <summary>
@@ -713,4 +715,49 @@ public class TrValidationTests
$"TR mismatch at {qIdx}: QuanTAlib={qOutput[qIdx]:G17}, Tulip={outputs[0][i]:G17}");
}
}
// === Skender Validation ===
[Fact]
public void Validate_Skender_Batch()
{
var data = new ValidationTestData();
var tr = new global::QuanTAlib.Tr();
var qResult = tr.Update(data.Bars);
var sResult = data.SkenderQuotes.GetTr().ToList();
ValidationHelper.VerifyData(qResult, sResult, s => s.Tr, tolerance: ValidationHelper.SkenderTolerance);
}
[Fact]
public void Validate_Skender_Streaming()
{
var data = new ValidationTestData();
var tr = new global::QuanTAlib.Tr();
var qResults = new List<double>();
foreach (var bar in data.Bars)
{
qResults.Add(tr.Update(bar).Value);
}
var sResult = data.SkenderQuotes.GetTr().ToList();
ValidationHelper.VerifyData(qResults, sResult, s => s.Tr, tolerance: ValidationHelper.SkenderTolerance);
}
[Fact]
public void Validate_Skender_Span()
{
var data = new ValidationTestData();
double[] high = data.HighPrices.ToArray();
double[] low = data.LowPrices.ToArray();
double[] close = data.ClosePrices.ToArray();
var output = new double[high.Length];
global::QuanTAlib.Tr.Batch(high, low, close, output);
var sResult = data.SkenderQuotes.GetTr().ToList();
ValidationHelper.VerifyData(output, sResult, s => s.Tr, tolerance: ValidationHelper.SkenderTolerance);
}
}