mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-05 12:37:43 +00:00
96 lines
2.3 KiB
C#
96 lines
2.3 KiB
C#
using Xunit;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using QuanTAlib;
|
|
|
|
namespace Basics;
|
|
#nullable disable
|
|
public class TBars
|
|
{
|
|
private static Type[] maSeriesTypes = new Type[]
|
|
{
|
|
typeof(ATR_Series),
|
|
typeof(ATRP_Series),
|
|
typeof(TR_Series),
|
|
typeof(ADL_Series),
|
|
typeof(CCI_Series),
|
|
typeof(OBV_Series),
|
|
typeof(ADOSC_Series),
|
|
typeof(MIDPRICE_Series),
|
|
};
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Name_exists(Type classType)
|
|
{
|
|
GBM_Feed data = new(10);
|
|
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
Assert.NotEmpty(MA_Series.Name);
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Series_Length(Type classType)
|
|
{
|
|
GBM_Feed data = new(1000);
|
|
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
Assert.Equal(1000, MA_Series.Count);
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Return_data(Type classType)
|
|
{
|
|
GBM_Feed data = new(10);
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
var result = MA_Series.Add((DateTime.Today, 1,2,3,4,5));
|
|
Assert.Equal(result.v, MA_Series.Last.v);
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Update(Type classType)
|
|
{
|
|
GBM_Feed data = new(10);
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
var pre_update = MA_Series.Last;
|
|
|
|
var pre_data = data.Last;
|
|
data.Add((DateTime.Today, 1, 2, 3, 4, 5), true);
|
|
data.Add(pre_data, true);
|
|
|
|
Assert.Equal(pre_update.v, MA_Series.Last.v);
|
|
Assert.Equal(data.Count, MA_Series.Count);
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Reset(Type classType)
|
|
{
|
|
GBM_Feed data = new(10);
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
MA_Series.Reset();
|
|
data.Add();
|
|
Assert.False(double.IsNaN(MA_Series.Last.v));
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(MASeriesData))]
|
|
public void Period_default(Type classType) {
|
|
GBM_Feed data = new(100);
|
|
|
|
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
|
|
Assert.False(double.IsNaN(MA_Series.Last.v));
|
|
}
|
|
|
|
public static IEnumerable<object[]> MASeriesData()
|
|
{
|
|
foreach (var type in maSeriesTypes)
|
|
{
|
|
yield return new object[] { type };
|
|
}
|
|
}
|
|
}
|
|
#nullable restore |