Генерация отсортированных данных с помощью test.check
Я хотел бы использовать test.check для генерации отсортированных данных временных рядов в форме
[ [timestamp value] [timestamp value] ..]
где отметка времени, пары значений находятся в порядке возрастания отметки времени.
Я могу легко генерировать такие данные в случайном порядке с
(gen/tuple timestamp gen/int)
где timestamp
например (gen/choose 1412664660 1423419720)
Как я должен идти о генерации отсортированных данных?
1 ответ
Так дошло до меня, когда я чистил зубы..
Когда я задал вопрос, я подумал "на один уровень ниже" о данных, которые я хочу сгенерировать.
(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)))