`


;;=> (1 0 1 1 1 0 1 1 72 1)


;;=> (#inst "2001-01-01T00:00:00.000-00:00"
`

After on same

`
(26 16 65 96 63 37 31 4 94 9)







`

评论者:gfredericks

评论者:alexmiller

评论者:gfredericks

例如,我建议至少单独生成时间戳的各个组成部分(年、月、日、小时等),并用 {{gen/fmap}} 将它们组合起来。这使得它更自然地缩小,并且更容易指定任何喜欢以偏向当前值为中心的策略。

关于整数范围的讨论,我只想指出 test.check 的一个特性是使用“小的”值开始测试,因此无论你施加多少均匀分布,你都会抵消此特性。

_由 gfredericks_ 发表的评论

如果你想要一个同时从最小值和最大值开始,并且可以缩小到任一值的生成器,以下类似的东西应该可以工作


(defn bi-biased-int-range
  [min max]
  (let [g (gen/large-integer* {:min min, :max max})
        g' (gen/let [x g] (- max (- x min)))]
    (gen/one-of [g g']))))

由 stu 发表的评论

也许这两个案例需要分别考虑。我喜欢Gary关于时间戳的想法,认为整数生成器应保持不变。

参考: https://clojure.atlassian.net/browse/CLJ-2179 (由 alexmiller 报告)
...