mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-06 04:57:44 +00:00
884 lines
28 KiB
C#
884 lines
28 KiB
C#
using Xunit;
|
|
using QuanTAlib;
|
|
|
|
public class Consistency
|
|
{
|
|
Random rnd;
|
|
int series_len = 1000;
|
|
int corrections = 100;
|
|
|
|
public Consistency()
|
|
{ //constructor
|
|
rnd = new((int)DateTime.Now.Ticks);
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void CanUpdate()
|
|
{
|
|
|
|
GbmFeed gbm = new();
|
|
TSeries input = new(gbm.Close);
|
|
TSeries output = new(input);
|
|
|
|
gbm.Add(10000);
|
|
|
|
Assert.Equal(input.Count, output.Count);
|
|
for (int i = 0; i < input.Count; i++)
|
|
{
|
|
Assert.Equal(input[i].v, output[i].v);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Alma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
double offset = rnd.Next();
|
|
double sigma = rnd.Next(1, 100);
|
|
Alma ma1 = new(period: p, offset: offset, sigma: sigma);
|
|
Alma ma2 = new(period: p, offset: offset, sigma: sigma);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Convolution_isNew()
|
|
{
|
|
Convolution ma1 = new(new double[] { 1.0, 2, 3, 2, 1 });
|
|
Convolution ma2 = new(new double[] { 1.0, 2, 3, 2, 1 });
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Dema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Dema ma1 = new(p);
|
|
Dema ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Dsma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Dsma ma1 = new(p);
|
|
Dsma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Dwma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Dwma ma1 = new(p);
|
|
Dwma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void EmaSma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Ema ma1 = new(p, useSma: true);
|
|
Ema ma2 = new(p, useSma: true);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Ema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Ema ma1 = new(p, useSma: false);
|
|
Ema ma2 = new(p, useSma: false);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Sma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Sma ma1 = new(p);
|
|
Sma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Epma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Epma ma1 = new(p);
|
|
Epma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Frama_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Frama ma1 = new(p);
|
|
Frama ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Fwma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Fwma ma1 = new(p);
|
|
Fwma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Gma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Gma ma1 = new(p);
|
|
Gma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Hma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Hma ma1 = new(p);
|
|
Hma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void Hwma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Hwma ma1 = new(p);
|
|
Hwma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
/*
|
|
[Fact]
|
|
public void Jma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Jma ma1 = new(p);
|
|
Jma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
|
|
//Assert.Equal(ma1.Value, ma2.Value);
|
|
Assert.True(ma1.Value == ma2.Value, $"Assertion failed at p={p}, Value={item1.Value}. ma1.Value={ma1.Value}, ma2.Value={ma2.Value}");
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
[Fact]
|
|
public void Kama_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Kama ma1 = new(p);
|
|
Kama ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Ltma_isNew()
|
|
{
|
|
int p = rnd.Next(0, 1);
|
|
Ltma ma1 = new(p);
|
|
Ltma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Mama_isNew()
|
|
{
|
|
int p = rnd.Next(0, 1);
|
|
Mama ma1 = new(p, p * 0.1);
|
|
Mama ma2 = new(p, p * 0.1);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
|
|
Assert.True(ma1.Value == ma2.Value, $"Assertion failed for p={p}, i={i}. Expected {ma1.Value} but got {ma2.Value}.");
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Mgdi_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Mgdi ma1 = new(p);
|
|
Mgdi ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Mma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Mma ma1 = new(p);
|
|
Mma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Qema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Qema ma1 = new();
|
|
Qema ma2 = new();
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Rema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Rema ma1 = new(p);
|
|
Rema ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Rma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Rma ma1 = new(p);
|
|
Rma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Sinema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Sinema ma1 = new(p);
|
|
Sinema ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Smma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Smma ma1 = new(p);
|
|
Smma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void T3_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
T3 ma1 = new(p);
|
|
T3 ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Tema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Tema ma1 = new(p);
|
|
Tema ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void Trima_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Trima ma1 = new(p);
|
|
Trima ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public void Vidya_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Vidya ma1 = new(p);
|
|
Vidya ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Wma_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Wma ma1 = new(p);
|
|
Wma ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
[Fact]
|
|
public void Zlema_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Zlema ma1 = new(p);
|
|
Zlema ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Entropy_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Entropy ma1 = new(p);
|
|
Entropy ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Kurtosis_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Kurtosis ma1 = new(p);
|
|
Kurtosis ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Max_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Max ma1 = new(p, 0.01);
|
|
Max ma2 = new(p, 0.01);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Min_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Min ma1 = new(p, 0.01);
|
|
Min ma2 = new(p, 0.01);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Med_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Median ma1 = new(p);
|
|
Median ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Mode_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Mode ma1 = new(p);
|
|
Mode ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Percentile_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Percentile ma1 = new(p, 50);
|
|
Percentile ma2 = new(p, 50);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Skew_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Skew ma1 = new(p);
|
|
Skew ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Stddev_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Stddev ma1 = new(p);
|
|
Stddev ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Variance_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Variance ma1 = new(p);
|
|
Variance ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Zscore_isNew()
|
|
{
|
|
int p = (int)rnd.Next(2, 100);
|
|
Zscore ma1 = new(p);
|
|
Zscore ma2 = new(p);
|
|
for (int i = 0; i < series_len; i++)
|
|
{
|
|
TValue item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: true);
|
|
ma1.Calc(item1);
|
|
for (int j = 0; j < corrections; j++)
|
|
{
|
|
item1 = new(Time: DateTime.Now, Value: rnd.Next(-100, 100), IsNew: false);
|
|
ma1.Calc(item1);
|
|
}
|
|
ma2.Calc(new TValue(item1.Time, item1.Value, IsNew: true));
|
|
Assert.Equal(ma1.Value, ma2.Value);
|
|
}
|
|
}
|
|
|
|
}
|