Update test
This commit is contained in:
@@ -174,16 +174,17 @@ public class BacktestExecutorTests : BaseTests, IDisposable
|
||||
|
||||
// Validate key metrics - Updated after bug fix in executor
|
||||
Assert.Equal(1000.0m, result.InitialBalance);
|
||||
Assert.Equal(-106.56099322216572799788857674m, result.FinalPnl);
|
||||
Assert.Equal(44.343999999999999999999999991m, result.FinalPnl);
|
||||
Assert.Equal(31, result.WinRate);
|
||||
Assert.Equal(-10.65609932221657279978885767m, result.GrowthPercentage);
|
||||
Assert.Equal(4.43440000000000000000000m, result.GrowthPercentage);
|
||||
Assert.Equal(-0.67091284426766023865867781m, result.HodlPercentage);
|
||||
Assert.Equal(80.79928757024963503097372311m, result.Fees);
|
||||
Assert.Equal(-187.36028079241536302886229985m, result.NetPnl);
|
||||
Assert.Equal(247.6174188306195945127193964m, result.MaxDrawdown);
|
||||
Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.02128926270325995)) < 0.01,
|
||||
$"SharpeRatio mismatch: expected ~-0.02128926270325995, got {result.SharpeRatio}");
|
||||
Assert.Equal((double)0.0m, result.Score);
|
||||
Assert.Equal(86.64864600000000000000000000m, result.Fees);
|
||||
Assert.Equal(-42.304646000000000000000000009m, result.NetPnl);
|
||||
Assert.Equal(119.8400000000000000000000000m, result.MaxDrawdown);
|
||||
Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - 0.01080949889674031) < 0.01,
|
||||
$"SharpeRatio mismatch: expected ~0.01080949889674031, got {result.SharpeRatio}");
|
||||
Assert.True(Math.Abs(result.Score - 12.402462484050353) < 0.001,
|
||||
$"Score {result.Score} should be within 0.001 of expected value 12.402462484050353");
|
||||
|
||||
// Validate dates
|
||||
Assert.Equal(new DateTime(2025, 10, 14, 12, 0, 0), result.StartDate);
|
||||
@@ -266,15 +267,15 @@ public class BacktestExecutorTests : BaseTests, IDisposable
|
||||
|
||||
// Validate key metrics - Updated after bug fix in executor
|
||||
Assert.Equal(100000.0m, result.InitialBalance);
|
||||
Assert.Equal(-51432.265731849885674051903916m, result.FinalPnl);
|
||||
Assert.Equal(-31899.032000000000000000000000m, result.FinalPnl);
|
||||
Assert.Equal(21, result.WinRate);
|
||||
Assert.Equal(-51.432265731849885674051903916m, result.GrowthPercentage);
|
||||
Assert.Equal(-31.8990320000000000000000m, result.GrowthPercentage);
|
||||
Assert.Equal(-12.86812721679866545042180006m, result.HodlPercentage);
|
||||
Assert.Equal(22264.708181615670578972912983m, result.Fees);
|
||||
Assert.Equal(-73696.973913465556253024816899m, result.NetPnl);
|
||||
Assert.Equal(53475.731588491336432196999149m, result.MaxDrawdown);
|
||||
Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.029960456261340647)) < 0.01,
|
||||
$"SharpeRatio mismatch: expected ~-0.029960456261340647, got {result.SharpeRatio}"); // Use tolerance for floating point precision
|
||||
Assert.Equal(25875.444102000000000000000000m, result.Fees);
|
||||
Assert.Equal(-57774.476102000000000000000000m, result.NetPnl);
|
||||
Assert.Equal(37030.256000000000000000000000m, result.MaxDrawdown);
|
||||
Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.024119163190349627)) < 0.01,
|
||||
$"SharpeRatio mismatch: expected ~-0.024119163190349627, got {result.SharpeRatio}"); // Use tolerance for floating point precision
|
||||
Assert.Equal((double)0.0m, result.Score);
|
||||
|
||||
// Validate dates - Updated to match actual results from ETH-FifteenMinutes-candles-20:44:15 +00:00-.json
|
||||
@@ -430,12 +431,32 @@ public class BacktestExecutorTests : BaseTests, IDisposable
|
||||
Assert.Equal(100000, result.InitialBalance);
|
||||
Assert.True(result.Score >= 0); // Score can be 0 or positive
|
||||
|
||||
// Output the result to console for review
|
||||
var json = JsonConvert.SerializeObject(new
|
||||
{
|
||||
result.FinalPnl,
|
||||
result.WinRate,
|
||||
result.GrowthPercentage,
|
||||
result.HodlPercentage,
|
||||
result.Fees,
|
||||
result.NetPnl,
|
||||
result.MaxDrawdown,
|
||||
result.SharpeRatio,
|
||||
result.Score,
|
||||
result.InitialBalance,
|
||||
StartDate = result.StartDate.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
EndDate = result.EndDate.ToString("yyyy-MM-dd HH:mm:ss")
|
||||
}, Formatting.Indented);
|
||||
|
||||
Console.WriteLine("Two-Scenarios Backtest Results:");
|
||||
Console.WriteLine(json);
|
||||
|
||||
// Business Logic Baseline Assertions - Updated after bug fix in executor
|
||||
// These values establish the expected baseline for the two-scenarios test
|
||||
const decimal expectedFinalPnl = -53491.95m;
|
||||
const decimal expectedFinalPnl = -34137.424000000000000000000000m;
|
||||
const double expectedScore = 0.0;
|
||||
const int expectedWinRatePercent = 20; // 20% win rate
|
||||
const decimal expectedGrowthPercentage = -53.49m;
|
||||
const decimal expectedGrowthPercentage = -34.1374240000000000000000m;
|
||||
|
||||
// Allow small tolerance for floating-point precision variations
|
||||
const decimal pnlTolerance = 0.01m;
|
||||
|
||||
Reference in New Issue
Block a user