public Property Given_ConstantBracketExpression_contains_consecutive_characters_When_comparing_to_RangeBracketValue_that_has_head_and_tail_Equals_should_returns_true() { // Arrange IArbMap arbMap = ArbMap.Default; return(Prop.ForAll(arbMap.ArbFor <char>().Filter(char.IsLetter).Filter(char.IsLower), arbMap.ArbFor <char>().Filter(char.IsLetter).Filter(char.IsLower), (start, end) => { char[] chrs = new[] { start, end }.OrderBy(x => x) .ToArray(); char head = chrs[0]; char tail = chrs[1]; ConstantBracketValue constantBracketValue = new(Enumerable.Range(head, tail - head + 1) .Select(ascii => ((char)ascii).ToString()) .Aggregate((accumulate, current) => $"{accumulate}{current}")); // Act bool actual = new RangeBracketValue(head, tail).Equals(constantBracketValue); return actual.When(start < end); })); }
public Property Given_left_and_right_RangeBracketValues_left_ne_right_should_be_same_as_not_left_Equals_right(RangeBracketValue left, RangeBracketValue right) => (left != right).When(!left.Equals(right)).Label($"Left, Right : {(left, right)}");