Skip to content

Commit df7f95e

Browse files
committed
Removed namespace brackets for SymbolDataSplitterHeavyTests
1 parent 6203674 commit df7f95e

File tree

1 file changed

+101
-102
lines changed

1 file changed

+101
-102
lines changed

tests/Backtest.Net.Tests/SymbolDataSplitterTests/SymbolDataSplitterHeavyTests.cs

Lines changed: 101 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -4,134 +4,133 @@
44
using Backtest.Net.SymbolsData;
55
using Backtest.Net.Timeframes;
66

7-
namespace Backtest.Net.Tests.SymbolDataSplitterTests
7+
namespace Backtest.Net.Tests.SymbolDataSplitterTests;
8+
9+
/// <summary>
10+
/// Tests that require of generating separate specific candles data instead of using 1 data for all tests
11+
/// </summary>
12+
public class SymbolDataSplitterHeavyTests : TestBase
813
{
14+
// --- Properties
15+
private SymbolDataSplitterV2 SymbolDataSplitter { get; set; }
16+
private DateTime StartingDate { get; set; }
17+
private int WarmupCandlesCount { get; set; }
18+
19+
// --- Constructors
20+
public SymbolDataSplitterHeavyTests()
21+
{
22+
StartingDate = new DateTime(2023, 1, 1);
23+
WarmupCandlesCount = 2;
24+
25+
SymbolDataSplitter = new SymbolDataSplitterV2(1, WarmupCandlesCount, StartingDate);
26+
}
27+
928
/// <summary>
10-
/// Tests that require of generating separate specific candles data instead of using 1 data for all tests
29+
/// Testing multiple SymbolData instances where one of them has historical candles that begins after backtesting starting datetime
1130
/// </summary>
12-
public class SymbolDataSplitterHeavyTests : TestBase
31+
[Fact]
32+
public void TestSymbolDataWithStartDateOutOfRange()
1333
{
14-
// --- Properties
15-
private SymbolDataSplitterV2 SymbolDataSplitter { get; set; }
16-
private DateTime StartingDate { get; set; }
17-
private int WarmupCandlesCount { get; set; }
34+
List<SymbolDataV2> correctRangeSymbolsData = GenerateFakeSymbolsDataV2(["BTCUSDT"],
35+
[CandlestickInterval.M5, CandlestickInterval.M15],
36+
StartingDate.AddHours(-WarmupCandlesCount), 6720);
1837

19-
// --- Constructors
20-
public SymbolDataSplitterHeavyTests()
21-
{
22-
StartingDate = new DateTime(2023, 1, 1);
23-
WarmupCandlesCount = 2;
38+
List<SymbolDataV2> outOfRangeSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
39+
[CandlestickInterval.M5, CandlestickInterval.M15],
40+
new DateTime(2023, 1, 19), 672);
2441

25-
SymbolDataSplitter = new SymbolDataSplitterV2(1, WarmupCandlesCount, StartingDate);
26-
}
27-
28-
/// <summary>
29-
/// Testing multiple SymbolData instances where one of them has historical candles that begins after backtesting starting datetime
30-
/// </summary>
31-
[Fact]
32-
public void TestSymbolDataWithStartDateOutOfRange()
33-
{
34-
List<SymbolDataV2> correctRangeSymbolsData = GenerateFakeSymbolsDataV2(["BTCUSDT"],
35-
[CandlestickInterval.M5, CandlestickInterval.M15],
36-
StartingDate.AddHours(-WarmupCandlesCount), 6720);
42+
correctRangeSymbolsData.AddRange(outOfRangeSymbolsData);
3743

38-
List<SymbolDataV2> outOfRangeSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
39-
[CandlestickInterval.M5, CandlestickInterval.M15],
40-
new DateTime(2023, 1, 19), 672);
44+
List<List<SymbolDataV2>> splitResult = SymbolDataSplitter.SplitAsyncV2(correctRangeSymbolsData).Result;
4145

42-
correctRangeSymbolsData.AddRange(outOfRangeSymbolsData);
46+
// --- Check if there are no zero records
47+
Assert.DoesNotContain(splitResult, x => x.Count == 0);
4348

44-
List<List<SymbolDataV2>> splitResult = SymbolDataSplitter.SplitAsyncV2(correctRangeSymbolsData).Result;
49+
for (int i = 0; i <= 17; i++)
50+
Assert.Single(splitResult.ElementAt(i));
4551

46-
// --- Check if there are no zero records
47-
Assert.DoesNotContain(splitResult, x => x.Count == 0);
52+
for (int i = 18; i <= 20; i++)
53+
Assert.Equal(2, splitResult.ElementAt(i).Count);
4854

49-
for (int i = 0; i <= 17; i++)
50-
Assert.Single(splitResult.ElementAt(i));
51-
52-
for (int i = 18; i <= 20; i++)
53-
Assert.Equal(2, splitResult.ElementAt(i).Count);
55+
for (int i = 21; i <= 23; i++)
56+
Assert.Single(splitResult.ElementAt(i));
57+
}
5458

55-
for (int i = 21; i <= 23; i++)
56-
Assert.Single(splitResult.ElementAt(i));
57-
}
59+
/// <summary>
60+
/// Test passing timeframes with incorrect timeframes order
61+
/// </summary>
62+
[Fact]
63+
public async Task TestTimeframesIncorrectOrder()
64+
{
65+
List<SymbolDataV2> symbolsDataIncorrectTimeframesOrder = GenerateFakeSymbolsDataV2(["ETHUSDT"],
66+
[CandlestickInterval.M30, CandlestickInterval.M15, CandlestickInterval.M5],
67+
StartingDate, 672);
5868

59-
/// <summary>
60-
/// Test passing timeframes with incorrect timeframes order
61-
/// </summary>
62-
[Fact]
63-
public async Task TestTimeframesIncorrectOrder()
64-
{
65-
List<SymbolDataV2> symbolsDataIncorrectTimeframesOrder = GenerateFakeSymbolsDataV2(["ETHUSDT"],
66-
[CandlestickInterval.M30, CandlestickInterval.M15, CandlestickInterval.M5],
67-
StartingDate, 672);
69+
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
70+
await SymbolDataSplitter.SplitAsyncV2(symbolsDataIncorrectTimeframesOrder));
6871

69-
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
70-
await SymbolDataSplitter.SplitAsyncV2(symbolsDataIncorrectTimeframesOrder));
72+
Assert.Equal("symbolsData argument contains invalid or not properly sorted data", exception.Message);
73+
}
7174

72-
Assert.Equal("symbolsData argument contains invalid or not properly sorted data", exception.Message);
73-
}
75+
/// <summary>
76+
/// Test passing Candlesticks with incorrect order
77+
/// </summary>
78+
[Fact]
79+
public async Task TestCandlestickIncorrectOrder()
80+
{
81+
List<SymbolDataV2> symbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
82+
[CandlestickInterval.M5, CandlestickInterval.M15, CandlestickInterval.M30],
83+
StartingDate, 672);
7484

75-
/// <summary>
76-
/// Test passing Candlesticks with incorrect order
77-
/// </summary>
78-
[Fact]
79-
public async Task TestCandlestickIncorrectOrder()
85+
foreach (SymbolDataV2 symbol in symbolsData)
8086
{
81-
List<SymbolDataV2> symbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
82-
[CandlestickInterval.M5, CandlestickInterval.M15, CandlestickInterval.M30],
83-
StartingDate, 672);
84-
85-
foreach (SymbolDataV2 symbol in symbolsData)
87+
foreach (TimeframeV2 timeframe in symbol.Timeframes)
8688
{
87-
foreach (TimeframeV2 timeframe in symbol.Timeframes)
88-
{
89-
CandlestickV2 firstCandle = timeframe.Candlesticks.First();
90-
CandlestickV2 secondCandle = timeframe.Candlesticks.Skip(1).First();
91-
firstCandle.OpenTime = secondCandle.OpenTime.AddSeconds(1);
92-
firstCandle.CloseTime = secondCandle.CloseTime.AddSeconds(1);
93-
}
89+
CandlestickV2 firstCandle = timeframe.Candlesticks.First();
90+
CandlestickV2 secondCandle = timeframe.Candlesticks.Skip(1).First();
91+
firstCandle.OpenTime = secondCandle.OpenTime.AddSeconds(1);
92+
firstCandle.CloseTime = secondCandle.CloseTime.AddSeconds(1);
9493
}
94+
}
9595

96-
ArgumentException exception =
97-
await Assert.ThrowsAsync<ArgumentException>(async () =>
98-
await SymbolDataSplitter.SplitAsyncV2(symbolsData));
96+
ArgumentException exception =
97+
await Assert.ThrowsAsync<ArgumentException>(async () =>
98+
await SymbolDataSplitter.SplitAsyncV2(symbolsData));
9999

100-
Assert.Equal("symbolsData argument contains invalid or not properly sorted data", exception.Message);
101-
}
100+
Assert.Equal("symbolsData argument contains invalid or not properly sorted data", exception.Message);
101+
}
102102

103-
/// <summary>
104-
/// Test if symbols data contain duplicated symbols
105-
/// </summary>
106-
/// <returns></returns>
107-
[Fact]
108-
public async Task TestDuplicatedSymbols()
109-
{
110-
List<SymbolDataV2> duplicatedSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT", "ETHUSDT"],
111-
[CandlestickInterval.M5, CandlestickInterval.M15],
112-
new DateTime(2023, 1, 19), 672);
103+
/// <summary>
104+
/// Test if symbols data contain duplicated symbols
105+
/// </summary>
106+
/// <returns></returns>
107+
[Fact]
108+
public async Task TestDuplicatedSymbols()
109+
{
110+
List<SymbolDataV2> duplicatedSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT", "ETHUSDT"],
111+
[CandlestickInterval.M5, CandlestickInterval.M15],
112+
new DateTime(2023, 1, 19), 672);
113113

114-
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
115-
await SymbolDataSplitter.SplitAsyncV2(duplicatedSymbolsData));
114+
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
115+
await SymbolDataSplitter.SplitAsyncV2(duplicatedSymbolsData));
116116

117-
Assert.Equal("symbolsData contain duplicated symbols or timeframes", exception.Message);
118-
}
117+
Assert.Equal("symbolsData contain duplicated symbols or timeframes", exception.Message);
118+
}
119119

120-
/// <summary>
121-
/// Test if symbols data contain duplicated timeframes
122-
/// </summary>
123-
/// <returns></returns>
124-
[Fact]
125-
public async Task TestDuplicatedTimeframes()
126-
{
127-
List<SymbolDataV2> duplicatedSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
128-
[CandlestickInterval.M5, CandlestickInterval.M5, CandlestickInterval.M15],
129-
new DateTime(2023, 1, 19), 672);
120+
/// <summary>
121+
/// Test if symbols data contain duplicated timeframes
122+
/// </summary>
123+
/// <returns></returns>
124+
[Fact]
125+
public async Task TestDuplicatedTimeframes()
126+
{
127+
List<SymbolDataV2> duplicatedSymbolsData = GenerateFakeSymbolsDataV2(["ETHUSDT"],
128+
[CandlestickInterval.M5, CandlestickInterval.M5, CandlestickInterval.M15],
129+
new DateTime(2023, 1, 19), 672);
130130

131-
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
132-
await SymbolDataSplitter.SplitAsyncV2(duplicatedSymbolsData));
131+
ArgumentException exception = await Assert.ThrowsAsync<ArgumentException>(async () =>
132+
await SymbolDataSplitter.SplitAsyncV2(duplicatedSymbolsData));
133133

134-
Assert.Equal("symbolsData contain duplicated symbols or timeframes", exception.Message);
135-
}
134+
Assert.Equal("symbolsData contain duplicated symbols or timeframes", exception.Message);
136135
}
137136
}

0 commit comments

Comments
 (0)