Files
QuanTAlib/archive/Tests/Basic tests/TBars_input.cs
T

88 lines
2.5 KiB
C#
Raw Normal View History

2024-09-24 16:41:26 -07:00
using Xunit;
using System;
using System.Runtime.InteropServices;
using QuanTAlib;
namespace Basics;
#nullable disable
2024-10-06 06:59:26 +00:00
public class TBars {
2024-09-24 16:41:26 -07:00
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))]
2024-10-06 06:59:26 +00:00
public void Name_exists(Type classType) {
2024-09-24 16:41:26 -07:00
GBM_Feed data = new(10);
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
Assert.NotEmpty(MA_Series.Name);
}
[Theory]
[MemberData(nameof(MASeriesData))]
2024-10-06 06:59:26 +00:00
public void Series_Length(Type classType) {
2024-09-24 16:41:26 -07:00
GBM_Feed data = new(1000);
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
Assert.Equal(1000, MA_Series.Count);
}
[Theory]
[MemberData(nameof(MASeriesData))]
2024-10-06 06:59:26 +00:00
public void Return_data(Type classType) {
2024-09-24 16:41:26 -07:00
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))]
2024-10-06 06:59:26 +00:00
public void Update(Type classType) {
2024-09-24 16:41:26 -07:00
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))]
2024-10-06 06:59:26 +00:00
public void Reset(Type classType) {
2024-09-24 16:41:26 -07:00
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))]
2024-10-06 06:59:26 +00:00
public void Period_default(Type classType) {
2024-09-24 16:41:26 -07:00
GBM_Feed data = new(100);
var MA_Series = Activator.CreateInstance(classType, data) as TSeries;
Assert.False(double.IsNaN(MA_Series.Last.v));
}
2024-10-06 06:59:26 +00:00
public static IEnumerable<object[]> MASeriesData() {
foreach (var type in maSeriesTypes) {
2024-09-24 16:41:26 -07:00
yield return new object[] { type };
}
}
}
#nullable restore