mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-26 06:18:05 +00:00
Enhance documentation and validation for various indicators
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using Xunit;
|
||||
using System;
|
||||
|
||||
namespace QuanTAlib.Tests;
|
||||
|
||||
public class MacdTests
|
||||
{
|
||||
[Fact]
|
||||
public void BasicCalculation()
|
||||
{
|
||||
var macd = new Macd(12, 26, 9);
|
||||
Assert.False(macd.IsHot);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BatchMatchesStreaming()
|
||||
{
|
||||
var macd = new Macd(12, 26, 9);
|
||||
var series = new TSeries();
|
||||
// Generate some data
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
series.Add(new TValue(DateTime.UtcNow.AddMinutes(i), 100 + Math.Sin(i * 0.1) * 10));
|
||||
}
|
||||
|
||||
var batchResult = macd.Update(series);
|
||||
|
||||
macd.Reset();
|
||||
var streamResults = new System.Collections.Generic.List<double>();
|
||||
foreach (var item in series)
|
||||
{
|
||||
macd.Update(item);
|
||||
streamResults.Add(macd.Last.Value);
|
||||
}
|
||||
|
||||
for (int i = 0; i < series.Count; i++)
|
||||
{
|
||||
Assert.Equal(batchResult[i].Value, streamResults[i], 8);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SpanMatchesBatch()
|
||||
{
|
||||
var macd = new Macd(12, 26, 9);
|
||||
var series = new TSeries();
|
||||
// Generate some data
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
series.Add(new TValue(DateTime.UtcNow.AddMinutes(i), 100 + Math.Sin(i * 0.1) * 10));
|
||||
}
|
||||
|
||||
var batchResult = macd.Update(series);
|
||||
|
||||
var output = new double[series.Count];
|
||||
Macd.Calculate(series.Values, output, 12, 26);
|
||||
|
||||
for (int i = 0; i < series.Count; i++)
|
||||
{
|
||||
Assert.Equal(batchResult[i].Value, output[i], 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user