Я пытаюсь научиться правильно использовать FsCheck и в данный момент интегрирую его с Expecto. Я могу запустить тесты свойств, если использую конфигурацию FsCheck по умолчанию, но когда я пытаюсь использовать свой собственный генератор, это вызывает исключение переполнения стека.
вот мой генератор
type NameGen() =
static member Name() =
Arb.generate<string * string>
|> Gen.where (fun (firstName, lastName) ->
firstName.Length > 0 && lastName.Length > 0
)
|> Gen.map (fun (first, last) -> sprintf "%s %s" first last)
|> Arb.fromGen
|> Arb.convert string id
И я пытаюсь использовать это так:
let config = { FsCheckConfig.defaultConfig with arbitrary = [typeof<NameGen>] }
let propertyTests input =
let output = toInitials input
output.EndsWith(".")
testPropertyWithConfig config "Must end with period" propertyTests
Исключение выбрасывается еще до того, как оно попадет в функцию Gen.where
Что я делаю не так? Спасибо