191 lines
6.1 KiB
C#
191 lines
6.1 KiB
C#
using KLHZ.Trader.Core.DataLayer.Entities.Prices;
|
|
using KLHZ.Trader.Core.Math.Declisions.Services.Cache;
|
|
|
|
namespace KLHZ.Trader.Core.Tests
|
|
{
|
|
public class HistoryCacheUnit3Tests
|
|
{
|
|
private static PriceChange[] GetHistory(int count, string figi)
|
|
{
|
|
var res = new PriceChange[count];
|
|
if (count != 0)
|
|
{
|
|
var startDt = DateTime.UtcNow.AddSeconds(-count);
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
startDt = startDt.AddSeconds(1);
|
|
res[i] = new PriceChange()
|
|
{
|
|
Figi = figi,
|
|
Ticker = figi + "_ticker",
|
|
Id = i,
|
|
Time = startDt,
|
|
Price = (decimal)(i + 0.5),
|
|
Value = i % 2 == 0 ? i : 0
|
|
};
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
|
|
[Test]
|
|
public void Test1()
|
|
{
|
|
var count = 0;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi, hist);
|
|
var data = cacheUnit.GetData().Result;
|
|
|
|
Assert.That(data.Length == count);
|
|
}
|
|
|
|
[Test]
|
|
public void Test2()
|
|
{
|
|
var count = 1111;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi, hist);
|
|
var data = cacheUnit.GetData().Result;
|
|
|
|
Assert.That(data.Length == count);
|
|
}
|
|
|
|
[Test]
|
|
public void Test3()
|
|
{
|
|
var count = 60 * 60 * 3 * 24;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi, hist);
|
|
var data = cacheUnit.GetData().Result;
|
|
|
|
Assert.That(data.Length == count);
|
|
}
|
|
|
|
[Test]
|
|
public void Test4()
|
|
{
|
|
var count = 60 * 60 * 3 * 24;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
foreach (var item in hist)
|
|
{
|
|
cacheUnit.AddData(item);
|
|
}
|
|
var data = cacheUnit.GetData().Result;
|
|
|
|
Assert.That(data.Length == count);
|
|
}
|
|
|
|
[Test]
|
|
public void Test5()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i]);
|
|
}
|
|
cacheUnit.AddData(hist.Last());
|
|
var data = cacheUnit.GetData().Result;
|
|
var dt = data.Last().Time - data.First().Time;
|
|
Assert.That(dt <= TimeSpan.FromDays(3));
|
|
Assert.That(dt > TimeSpan.Zero);
|
|
}
|
|
|
|
[Test]
|
|
public void Test6()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i], "kkk");
|
|
}
|
|
var data = cacheUnit.GetData(key: "kkk").Result;
|
|
var dt = data.Last().Time - data.First().Time;
|
|
Assert.That(dt <= TimeSpan.FromHours(1));
|
|
Assert.That(dt > TimeSpan.Zero);
|
|
}
|
|
|
|
[Test]
|
|
public void Test7()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i], "kkk");
|
|
}
|
|
var data = cacheUnit.GetData(TimeSpan.FromMinutes(3), key: "kkk").Result;
|
|
var dt = data.Last().Time - data.First().Time;
|
|
Assert.That(dt <= TimeSpan.FromMinutes(3));
|
|
Assert.That(dt > TimeSpan.Zero);
|
|
}
|
|
|
|
[Test]
|
|
public void Test8()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i], "kkk");
|
|
}
|
|
var data = cacheUnit.GetData(TimeSpan.FromMinutes(4), TimeSpan.FromMinutes(3), key: "kkk").Result;
|
|
var dt = data.Last().Time - data.First().Time;
|
|
Assert.That(dt <= TimeSpan.FromMinutes(3));
|
|
Assert.That(dt > TimeSpan.Zero);
|
|
}
|
|
|
|
[Test]
|
|
public void Test9()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i], "kkk");
|
|
}
|
|
var data = cacheUnit.GetData(TimeSpan.FromMinutes(4), TimeSpan.FromMinutes(3), key: "kkk", (i) => i.Value != 0).Result;
|
|
|
|
Assert.That(data.All(d => d.Value != 0));
|
|
}
|
|
|
|
[Test]
|
|
public void Test10()
|
|
{
|
|
var count = 60 * 60 * 3 * 24 + 10;
|
|
var figi = "figi";
|
|
var hist = GetHistory(count, figi);
|
|
var cacheUnit = new PriceHistoryCacheUnit3(figi);
|
|
|
|
for (int i = 0; i < hist.Length - 1; i++)
|
|
{
|
|
cacheUnit.AddData(hist[i], "kkk");
|
|
}
|
|
var data = cacheUnit.GetData(selector: (i) => i.Value != 0).Result;
|
|
|
|
Assert.That(data.All(d => d.Value != 0));
|
|
}
|
|
}
|
|
} |