【发布时间】:2019-12-14 17:11:51
【问题描述】:
我有一个数据类型定义:
data Point = Point {x :: Int, h :: Int} | EmptyPoint
在我的属性测试中,我想将测试限制在 Point 构造函数案例上。例如 point1 - point2 = Point 0 0。这假定访问器 x 已定义,而 EmptyPoint 不是这种情况。
换句话说:我不希望生成 EmptyPoint。
有没有办法做到这一点?
【问题讨论】:
-
我不确定你的问题是你想限制对象的生成,或者如果你想添加一个“getter”
xEmptyPoint. -
@WillemVanOnsem 我想 quickcheck 会为 Point 类型生成随机数据。我想要的是它不会生成 EmptyPoint
-
你需要将
Point设为Arbitrary的一个实例。所以这意味着你可以指定如何生成任意的Points,这正是你想要的。
标签: haskell