Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用“clojure.spec/+;”限制生成样本的大小?_Clojure_Clojure.spec_Test.check - Fatal编程技术网

如何使用“clojure.spec/+;”限制生成样本的大小?

如何使用“clojure.spec/+;”限制生成样本的大小?,clojure,clojure.spec,test.check,Clojure,Clojure.spec,Test.check,clojure.spec/coll of采用:gen max选项限制生成的样本大小。 有类似于clojure.spec/+的吗?s/*和s/+不要选择像:gen max这样的选项,但那些重复的正则表达式规范会这样做。我认为这是相当粗粒度的控制,对像这样的简单规范没有实际影响,它似乎总是为任何正的*递归限制*>生成~200个元素的最长序列: (binding [clojure.spec.alpha/*recursion-limit* 1] (->> (gen/sample (s/g

clojure.spec/coll of
采用
:gen max
选项限制生成的样本大小。
有类似于clojure.spec/+的吗?

s/*
s/+
不要选择像
:gen max
这样的选项,但那些重复的正则表达式规范会这样做。我认为这是相当粗粒度的控制,对像这样的简单规范没有实际影响,它似乎总是为任何正的
*递归限制*
>生成~200个元素的最长序列:

(binding [clojure.spec.alpha/*recursion-limit* 1]
  (->> (gen/sample (s/gen (s/* int?)) 200)
       (map count)
       (apply max)))
限制生成序列长度的一种方法是提供自定义生成器:

(s/def ::ints
  (s/with-gen
    (s/+ int?)
    #(gen/vector gen/int 1 10)))
(gen/sample (s/gen ::ints) 200)
这应始终生成1-10个整数的向量。

相关主题: