public void WhenNoRulesReturnNull() { var rules = new StopRulesCollection(); var rule = rules.RuleForPercentage(0); Assert.Null(rule); }
public void ForSingleRuleOnEdgeOfRangeReturnRule(double value) { var rules = new StopRulesCollection { new StopLossRule { LowerProfitPercentage = 1, UpperProfitPercentage = 10 } }; var rule = rules.RuleForPercentage(value); Assert.NotNull(rule); }
public void WhenGreaterThanMaxReturnLastRule() { var rules = new StopRulesCollection { new StopLossRule { LowerProfitPercentage = 1, UpperProfitPercentage = 10 } }; var rule = rules.RuleForPercentage(20); Assert.NotNull(rule); }
public void WhenOutOfRangeReturnNull() { var rules = new StopRulesCollection { new StopLossRule { LowerProfitPercentage = 1, UpperProfitPercentage = 10 } }; var rule = rules.RuleForPercentage(0); Assert.Null(rule); }
public void ForMultipleRulesWhenGreaterThanMaxReturnLastRule() { var rules = new StopRulesCollection { new StopLossRule { LowerProfitPercentage = 1, UpperProfitPercentage = 10, StopType = StopTypeValue.Trailing }, new StopLossRule { LowerProfitPercentage = 10, UpperProfitPercentage = 20, StopType = StopTypeValue.Smart } }; var rule = rules.RuleForPercentage(30); Assert.Equal(StopTypeValue.Smart, rule.StopType); }
public void ForMultipleRulesOnEdgeOfRangeReturnFirstRule() { var rules = new StopRulesCollection { new StopLossRule { LowerProfitPercentage = 1, UpperProfitPercentage = 10, StopType = StopTypeValue.Trailing }, new StopLossRule { LowerProfitPercentage = 10, UpperProfitPercentage = 13, StopType = StopTypeValue.Floating } }; var rule = rules.RuleForPercentage(10); Assert.Equal(StopTypeValue.Trailing, rule.StopType); }