public ValidBoundaryValue(T value) { if (InvalidBoundaryValue.IsInvalidBoundaryValue <T, TComparer>(value)) { throw new ArgumentException($"{value} is not a valid boudnary value of {typeof(T)}"); } _value = value; }
public static Arbitrary <ValidBoundaryValue <T, TComparer> > ValidBoundaryValues <T, TComparer>() where TComparer : struct, IBoundaryValueComparer <T> => Arb.From( from value in Arb.Generate <T>() where !InvalidBoundaryValue.IsInvalidBoundaryValue <T, TComparer>(value) select new ValidBoundaryValue <T, TComparer>(value));
public static Arbitrary <InvalidBoundaryValue <T, TComparer> > InvalidBoundaryValues <T, TComparer>() where TComparer : struct, IBoundaryValueComparer <T> => Arb.From( !InvalidBoundaryValue.HasInvalidValues <T, TComparer>() ? Gen.Constant(new InvalidBoundaryValue <T, TComparer>()) : from value in Arb.Generate <T>() where InvalidBoundaryValue.IsInvalidBoundaryValue <T, TComparer>(value) select new InvalidBoundaryValue <T, TComparer>(value));