2

使用 java 库 QuickTheories,是否有一种内置方法可以从值列表创建生成器?

就像是:

public Gen<A> fromList(List<A> xs) {
    ....
}

自己动手并不算太糟糕,但似乎是在重新发明轮子:

List<TimeZone> timeZones = Arrays.stream(TimeZone.getAvailableIDs()).map(id -> TimeZone.getTimeZone(id));
return integers().allPositive().map(i -> timeZones.get(i % timeZones.size());
4

1 回答 1

4

pick似乎正是你所需要的。

从javadoc:

public <T> Gen<T> pick(java.util.List<T> ts)

通过从提供的随机选择一个值来生成一个值。缩小时,列表中较早的值将被视为“更小”。

于 2017-11-22T16:25:44.187 回答