7

QuickCheckような機能がないのはなぜですか? 特に、次のようなプロパティをどのように変換できるか疑問に思っていました:hedgehogsuccess

prop_specialPair :: Property
prop_specialPair = property $ do
  (_, xs) <- forAll specialPair
  case xs of
    x:_ -> x /== 3
    _   -> success

QuickCheckif I use =/=then では、 type の何かを返す必要Propertyがあり、渡すプロパティを返す定数関数がないようです。

Boolしたがって、次のタイプに頼る必要があります。

prop_specialPair :: SpecialPair -> Bool
prop_specialPair SpecialPair { xs } =
  case xs of
    x:_ -> x == 3
    _   -> True

または、非常に扱いにくいエンコーディングを使用しますsuccess。たとえば、次のようになります。

prop_specialPair :: SpecialPair -> Property
prop_specialPair SpecialPair { xs } =
  case xs of
    x:_ -> x =/= 3
    _   -> True === True

上記のプロパティを で表現するより良い方法はありますQuickCheckか?

4

2 に答える 2