使用 test.check 生成排序数据

Generating sorted data with test.check

我想使用 test.check 生成 排序 形式的时间序列数据

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

其中时间戳、值对按时间戳升序排列。

我可以使用

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

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

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

所以我刷牙的时候想到了..

当我问这个问题时,我在想 "one level too low" 我想要生成的数据。

(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)))