From 824901292b078f26e0db7dc4a50edfdad8ab480f Mon Sep 17 00:00:00 2001 From: RGBboy Date: Sat, 2 Jun 2018 16:36:23 +0100 Subject: [PATCH 1/2] update org.clojure/test.check to 0.10.0-alpha3; Add support for passing seed to sampleOne; --- project.clj | 2 +- src/testcheck.cljs | 8 ++++++-- test/gen-builders.spec.js | 6 ++++++ type-definitions/testcheck.d.ts | 2 +- type-definitions/testcheck.js.flow | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) 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; From 3e4b7f4e391748adce344ca83051e31f8a3d8e00 Mon Sep 17 00:00:00 2001 From: RGBboy Date: Sat, 2 Jun 2018 16:44:09 +0100 Subject: [PATCH 2/2] add optional seed to sampleOne docs; --- docs/API.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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`.