使用test.check生成排序数据

时间:2015-02-08 18:56:21

标签: clojure test.check

我想使用test.check生成表单的已排序时间序列数据

[ [timestamp value] [timestamp value] ..]

其中timestamp,value -pairs按时间戳按升序排列。

我可以使用

以随机顺序轻松生成此类数据

(gen/tuple timestamp gen/int)其中timestamp例如(gen/choose 1412664660 1423419720)

我应该如何生成排序数据?

1 个答案:

答案 0 :(得分:2)

所以在我刷牙的时候来找我......

当我问这个问题时,我想要对我想要生成的数据“一级太低”。

(gen/tuple timestamp gen/int)生成单个元组,我对它们进行(gen/fmap sort .. )的尝试不起作用,因为它只是对元组的内容进行了排序。我需要生成的是那些元组的向量..并且fmap sort当然有效:

(def entry (gen/tuple timestamp gen/int))
(def timeseries (gen/fmap sort (gen/vector entry)))