2
私はこのジェネレータが動作しているようですが、生成された値をチェックすると、決してnull値を選択しません。ヌル値を選択するジェネレータはどのように記述しますか?このコードでは、「終了日」の日付のNULL値は決して選択されません。FsCheckでヌル入力可能な型のnullを生成する方法は?
public static Gen<DateTime?> NullableDateTimeGen()
{
var list = new List<DateTime?>();
if (list.Any() == false)
{
var endDate = DateTime.Now.AddDays(5);
var startDate = DateTime.Now.AddDays(-10);
list.AddRange(Enumerable.Range(0, 1 + endDate.Subtract(startDate).Days)
.Select(offset => startDate.AddDays(offset))
.Cast<DateTime?>()
.ToList());
list.Add(null);
list.Insert(0, null);
}
return from i in Gen.Choose(0, list.Count - 1)
select list[i];
}
public static Arbitrary<Tuple<DateRange, DateTime>> TestTuple()
{
return (from s in NullableDateTimeGen().Where(x => x != null)
from e in NullableDateTimeGen()
from p in NullableDateTimeGen().Where(x => x != null)
where s <= e
select new Tuple<DateRange, DateTime>(new DateRange(s.Value, e), p.Value))
.ToArbitrary();
}
のように、何でも自分のシナリオのために理にかなっていると、その条件を置き換える?固定するために
NullableDateTimeGenまたはTestTuple関数ですか? – Evk
@Evk:TestTuple – epitka