Произвольный экземпляр для ненулевого UUID - PullRequest
1 голос
/ 05 мая 2020

У меня возникли проблемы с созданием экземпляра Arbitrary для некоторых типов записей с полями UUID. Умный конструктор гарантирует, что UUID не может быть нулевым. Есть ли идиоматический c способ изменить экземпляр UUID Arbitrary с Test.QuickCheck.Instances.UUID таким образом, чтобы он не генерировал нулевые значения - то есть генератор не должен создавать 00000000-0000-0000-0000-000000000000?

1 Ответ

2 голосов
/ 05 мая 2020

Вам нужен ключевой элемент suchThat. Когда ваш экземпляр вызовет arbitrary для получения UUID, вместо этого вызовите arbitrary `suchThat` (not . Data.UUID.Types.null). Кроме того, если ваш тип определяет shrink, при сжатии UUID сделайте filter (not . Data.UUID.Types.null) в списке сокращений.

...