public void LeadingTimespan_Returns_Value_When_TwoAlternatives_WashTrade()
        {
            var calculator = new RuleParameterAdjustedTimespanService();
            var dto        = new RuleParameterDto
            {
                WashTrades = new[]
                {
                    new WashTradeRuleParameterDto
                    {
                        WindowSize = TimeSpan.FromMinutes(8)
                    },
                    new WashTradeRuleParameterDto
                    {
                        WindowSize = TimeSpan.FromMinutes(11)
                    },
                    new WashTradeRuleParameterDto
                    {
                        WindowSize = TimeSpan.FromMinutes(2)
                    }
                }
            };

            var result = calculator.LeadingTimespan(dto);

            Assert.AreEqual(result, TimeSpan.FromMinutes(11));
        }
        public void LeadingTimespan_Returns_Zero_For_Null()
        {
            var calculator = new RuleParameterAdjustedTimespanService();

            var result = calculator.LeadingTimespan(null);

            Assert.AreEqual(result, TimeSpan.Zero);
        }
        public void LeadingTimespan_Returns_Value_When_Only_Layering()
        {
            var calculator = new RuleParameterAdjustedTimespanService();
            var dto        = new RuleParameterDto
            {
                Layerings = new[]
                {
                    new LayeringRuleParameterDto {
                        WindowSize = TimeSpan.FromMinutes(9)
                    }
                }
            };

            var result = calculator.LeadingTimespan(dto);

            Assert.AreEqual(result, TimeSpan.FromMinutes(9));
        }
        public void LeadingTimespan_Returns_Value_When_Only_Cancelled()
        {
            var calculator = new RuleParameterAdjustedTimespanService();
            var dto        = new RuleParameterDto
            {
                CancelledOrders = new[]
                {
                    new CancelledOrderRuleParameterDto
                    {
                        WindowSize = TimeSpan.FromMinutes(5)
                    }
                }
            };

            var result = calculator.LeadingTimespan(dto);

            Assert.AreEqual(result, TimeSpan.FromMinutes(5));
        }