【发布时间】:2011-03-01 04:20:07
【问题描述】:
我正在使用 QuickCheck 1,我有以下数据类型:
data A = ...
instance Arbitrary A where ...
data B = ...
instance Arbitrary B where ...
data C = C A B
现在我想为C 定义一个Arbitrary 实例,以便使用A 和B 的现有生成器生成C 值。我最终这样做了:
instance Arbitrary C where
arbitrary = elements [(C a b) |
a <- generate 20 (System.Random.mkStdGen 0) arbitrary,
b <- generate 20 (System.Random.mkStdGen 0) arbitrary]
是否需要为A 和B 显式生成固定数量的值,或者是否有更好的方法将现有Arbitraries 组合成一个新值?
【问题讨论】:
标签: haskell quickcheck