klhztrader/KLHZ.Trader.Core.Tests/SignalProcessingTests.cs

70 lines
2.3 KiB
C#

using KLHZ.Trader.Core.Contracts.Messaging.Dtos;
using KLHZ.Trader.Core.Contracts.Messaging.Dtos.Interfaces;
using KLHZ.Trader.Core.Math.Declisions.Utils;
using System.Security.Cryptography;
namespace KLHZ.Trader.Core.Tests
{
public class SignalProcessingTests
{
[Test]
public static void Test()
{
var da = new List<decimal>();
var times = new List<DateTime>();
var startDt = DateTime.UtcNow;
for (int i = 0; i < 100; i++)
{
startDt = startDt.AddSeconds(((double)(RandomNumberGenerator.GetInt32(1, 100))) / 100);
times.Add(startDt);
da.Add((decimal)System.Math.Sin(0.01 * i) + (decimal)System.Math.Cos(0.01 * i));
}
var res = SignalProcessing.InterpolateData(times.ToArray(), da.ToArray(), TimeSpan.FromSeconds(5));
}
[Test]
public static void Test2()
{
var da = new List<decimal>();
for (int i = 0; i < 100; i++)
{
da.Add(i);
}
var res = SignalProcessing.CalcDiffs(da.ToArray());
Assert.IsTrue(res.Length - da.Count == -1);
foreach (var r in res)
{
Assert.IsTrue(r == 1);
}
}
[Test]
public static void Test3()
{
var results = new List<ITradeDataItem>();
var times = new List<DateTime>();
var startDt = DateTime.UtcNow;
for (int i = 0; i < 100; i++)
{
startDt = startDt.AddSeconds(((double)(RandomNumberGenerator.GetInt32(1, 100))) / 100);
var t = new TradeDataItem()
{
Figi = "",
Ticker = "",
Time = startDt,
Count = 1,
Direction = RandomNumberGenerator.GetInt32(1, 3),
IsHistoricalData = true,
Price = (decimal)System.Math.Sin(0.01 * i) + (decimal)System.Math.Cos(0.01 * i),
};
results.Add(t);
}
var res = SignalProcessing.InterpolateData(results.ToArray(), TimeSpan.FromSeconds(5));
}
}
}