diff --git a/docs/API.md b/docs/API.md index 8e32b87..7adecf8 100644 --- a/docs/API.md +++ b/docs/API.md @@ -191,13 +191,16 @@ sampleOne([ gen.int, gen.alphaNumChar ]) **Parameters** ``` -sample(generator[, size]) +sample(generator[, size [, seed]]) ``` * `generator`: Any *ValueGenerator* object. * `size`: The size of the value to produce. Default: `30`. +* `seed`: The seed to use for the random number generator. Default: ** + + **Returns** A single value from `generator`. diff --git a/project.clj b/project.clj index 8640836..ca26fda 100644 --- a/project.clj +++ b/project.clj @@ -6,7 +6,7 @@ :dependencies [ [org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.9.293"] - [org.clojure/test.check "0.9.0"]] + [org.clojure/test.check "0.10.0-alpha3"]] :plugins [ [lein-cljsbuild "1.1.5"]] diff --git a/src/testcheck.cljs b/src/testcheck.cljs index 89b980e..790d7af 100644 --- a/src/testcheck.cljs +++ b/src/testcheck.cljs @@ -319,8 +319,12 @@ (to-array (gen/sample (->gen generator) (or num-samples 10))))) (defexport sampleOne (fn - [generator size] - (gen/generate (->gen generator) (or size 30)))) + ([generator] + (gen/generate (->gen generator) 30)) + ([generator size] + (gen/generate (->gen generator) size)) + ([generator size seed] + (gen/generate (->gen generator) (or size 30) seed)))) diff --git a/test/gen-builders.spec.js b/test/gen-builders.spec.js index da12d8d..13fae54 100644 --- a/test/gen-builders.spec.js +++ b/test/gen-builders.spec.js @@ -45,6 +45,12 @@ describe('gen builders', () => { expect(val).toBe(55) }) + it('samples one with a given seed', () => { + const a = sampleOne(gen.int, 1, 1); + const b = sampleOne(gen.int, 1, 1); + expect(a).toBe(b) + }) + it('generates an exact value', () => { const vals = sample(gen.return('wow'), 100) expect(vals.length).toBe(100) diff --git a/type-definitions/testcheck.d.ts b/type-definitions/testcheck.d.ts index 3ea8f10..419b99e 100644 --- a/type-definitions/testcheck.d.ts +++ b/type-definitions/testcheck.d.ts @@ -232,7 +232,7 @@ export function sample(gen: ValueGenerator, numValues?: number): Array; * * By default, values of size 30 are produced. */ -export function sampleOne(gen: ValueGenerator, size?: number): T; +export function sampleOne(gen: ValueGenerator, size?: number, seed?: number): T; diff --git a/type-definitions/testcheck.js.flow b/type-definitions/testcheck.js.flow index 50e2ffb..e114961 100644 --- a/type-definitions/testcheck.js.flow +++ b/type-definitions/testcheck.js.flow @@ -252,7 +252,7 @@ declare export function sample(gen: ValueGenerator, numValues?: number): A * * By default, values of size 30 are produced. */ -declare export function sampleOne(gen: ValueGenerator, size?: number): T; +declare export function sampleOne(gen: ValueGenerator, size?: number, seed?: number): T;