1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
|
# Changelog
## 1.1.0 (2020-07-10)
* TCHECK-155 - don't generate :/ for keywords
## 1.0.0 (2020-02-18)
* No changes
## 0.10.0 (2019-06-30 as RC1, 2019-08-11 as final)
* Docstring improvements
* Deprecated five small integer generators
* `gen/int`
* `gen/pos-int`
* `gen/neg-int`
* `gen/s-pos-int`
* `gen/s-neg-int`
Added a `gen/small-integer` to replace `gen/int`, and the
docstrings for all the deprecated generators suggest alternatives
* Added `gen/size-bounded-bigint` and `gen/big-ratio`, both jvm-only
* Added `*-equatable` variants of `gen/simple-type`,
`gen/simple-type-printable`, `gen/any`, and `gen/any-printable`;
the only current difference is that the new generators never generate
a `NaN`, and so they should always be `=` to equivalent objects
## 0.10.0-alpha4 (2019-03-10)
* Automatically require cljs macros so users don't have to
([TCHECK-154](http://dev.clojure.org/jira/browse/TCHECK-154))
## 0.10.0-alpha3 (2018-05-27)
* Improve failure reporting
([TCHECK-34](http://dev.clojure.org/jira/browse/TCHECK-34))
* `gen/frequency` doesn't shrink to zero-weighted entries
([TCHECK-129](http://dev.clojure.org/jira/browse/TCHECK-129))
* Faster PRNG in clojurescript
* General symbol/keyword generator improvements (shorter on average,
keyword generator includes colons and can generate `:/`)
* passing test reporting is optional
([TCHECK-116](http://dev.clojure.org/jira/browse/TCHECK-116))
* Doesn't crash when some other plugin redefines `clojure.test/report`
([TCHECK-125](http://dev.clojure.org/jira/browse/TCHECK-125))
* test names used more reliably in certain reportings
([TCHECK-124](http://dev.clojure.org/jira/browse/TCHECK-124))
* Removed the map-style bindings in `gen/let` introduced in `alpha1`
([TCHECK-133](http://dev.clojure.org/jira/browse/TCHECK-133))
* Changed some of the key names in the `reporter-fn` calls to more
closely match the data returned from `quick-check`, to minimize
confusion
* Clarified meaning of bindings in the `for-all` docstring
([TCHECK-121](http://dev.clojure.org/jira/browse/TCHECK-121))
* Updated the `:result` key to be more backwards compatible, added a
`:pass?` key, renamed `results/passing?` to `results/pass?`
([TCHECK-142](http://dev.clojure.org/jira/browse/TCHECK-142))
* Added timing keys to the `quick-check` return data
([TCHECK-95](http://dev.clojure.org/jira/browse/TCHECK-95))
## 0.10.0-alpha2 (2017-06-27)
* Added a 3rd optional argument to `gen/generate`, the `seed`
* Reverted behavioral change in `prop/for-all` so that returned
exceptions are treated as thrown exceptions
([TCHECK-131](http://dev.clojure.org/jira/browse/TCHECK-131))
## 0.10.0-alpha1 (2017-06-07)
* Major changes
* Adds a `:reporter-fn` callback for the `quick-check` function,
fixing [TCHECK-33](http://dev.clojure.org/jira/browse/TCHECK-33)
(this item is the most subject to change before the final release)
* Rewrote `recursive-gen` to be more careful about sizing
([TCHECK-83](http://dev.clojure.org/jira/browse/TCHECK-83))
* A new protocol clojure.test.check.results/Result that gives a standard
way for a test to return metadata to the test runner
* Minor changes
* Generated keywords and symbols are now smaller, on average
* `gen/any` and `gen/any-printable` can generate sets now
* Collections shrink faster now
* Created `clojure.test.check.clojure-test/*default-opts*`
* `gen/frequency` can shrink to earlier generators
([TCHECK-114](http://dev.clojure.org/jira/browse/TCHECK-114))
* `gen/such-that` can take an `ex-fn` option to customize exceptions
* `gen/let` supports map bindings to specify independence
([TCHECK-98](http://dev.clojure.org/jira/browse/TCHECK-98))
* Internal tweaks for compatibility with self-hosted cljs
([TCHECK-105](http://dev.clojure.org/jira/browse/TCHECK-105))
* `gen/sample` uses size up to `200` instead of `100`
* An assortment of internal changes
## 0.9.0 (2015-11-12)
0.9.0 contains an assortment of new generators, and is the first
release that requires Clojure 1.7.0 (due to using `cljc` files to unify
the clj & cljs code).
* `gen/let`
* `gen/uuid`
* `gen/double`
* `gen/large-integer`
* `gen/set`
* `gen/sorted-set`
* `gen/vector-distinct`
* `gen/vector-distinct-by`
* `gen/list-distinct`
* `gen/list-distinct-by`
* `gen/map` now takes sizing options, the same as the preceding
collection generators
## 0.8.2
* Bugfix for [TCHECK-77](http://dev.clojure.org/jira/browse/TCHECK-77),
which was a regression in the precision of `gen/choose` introduced in
0.8.1.
## 0.8.1
* Bugfix for [TCHECK-73](http://dev.clojure.org/jira/browse/TCHECK-73),
in which `gen/int` would sometimes generate doubles.
## 0.8.0
* **Breaking ClojureScript Change**:
The namespace names have changed:
- `cljs.*` → `clojure.*`
- `cljs.test.check.cljs-test` → `clojure.test.check.clojure-test`
* Randomness is now provided by a port of the
`java.util.SplittableRandom` algorithm, instead of
`java.util.Random` and `goog.testing.PsuedoRandom`.
* New functions in `clojure.test.check.generators`:
* `scale`
* `generate`
## 0.7.0
* Add ClojureScript support, written by @swannodette. More usage can be
found [in the
README](https://github.com/clojure/test.check#clojurescript).
* Raise an error if the incorrect arity of `defspec` is used.
* Don't export the following private functions:
* `make-rng`
* `not-falsey-or-exception?`
* `make-gen`
* `bind-helper`
* `recursive-helper`
* `binding-vars`
* `binding-gens`
## 0.6.2
* Fix regression where floating point numbers weren't allowed to describe
the number of tests in the defspec macro. Ex: (defspec foo 1e5 ...) now
works again.
* Allow `gen/shuffle` to work on anything that can be turned into a
sequence.
* Allow for testing to be cancelled inside the REPL with ctrl-c.
* Fix StackOverflow error that would be caused when generating vector with
more than about 10k elements.
## 0.6.1
* Fix bug introduced in 0.6.0: The `defspec` macro could only accept map or
numeric _literals_ as options, instead of a symbol.
## 0.6.0
* Add a `shuffle` generator, which generates permutations of a given
sequence.
* Rename `alpha-numeric` functions to `alphanumeric`. `char-alpha-numeric`
and `string-alpha-numeric` are now deprecated in favor of
`char-alphanumeric` and `string-alphanumeric`. The deprecated versions
will be removed in a future version of `test.check`.
* Update the `defspec` macro to allow an optional map argument, which
allows for the setting of `:seed`, `:num-tests` and `:max-size`. Examples
below:
```clojure
(defspec run-with-map {:num-tests 1} (prop/for-all* [gen/int] (constantly true)))
(defspec run-with-map {:num-tests 1
:seed 1}
my-prop)
```
* Provide better error-messages for the misuse of generator combinators.
Many of the functions now test that their arguments are of the
appropriate type, and will throw a runtime error otherwise.
* Print test failures that can be copied directly. For example, print the
empty string as `""`, instead of a blank value. This is fixed by using
`prn` instead of `println`.
## 0.5.9
* Better sizing for recursive generators
* Add `gen/recursive-gen` function for writing recursive generators
* Add keyword and symbol generators that may include namespaces
* `gen/keyword-ns`
* `gen/symbol-ns`
## 0.5.8
* Limit the number of retries for gen/such-that. A two-arity version is
provided if you need to retry more than 10 times. This should be a
code-smell, though.
* Return random seed used on test failure
* Fix keyword generator to conform to reader specs
* Correct documentation mentions of namespaces
* Add more detailed contributing instructions
* Internal: use a record internally for generators. This is meant to help
convey the fact that generators are opaque
* Extract rose-tree code into a separate namespace
## 0.5.7
* Rename project to test.check. See README for migrating
from _simple-check_.
## simple-check 0.5.6
* Fix `choose` bug introduced in 0.5.4, the upper-bound was not inclusive.
## simple-check 0.5.5
* Fix botched release
## simple-check 0.5.4
* Fix documentation typos
* Fix defspec default num-tests bug (#52)
* Fix docstring position on `exclude-nth` function (#50)
* Add rose-seq helper function
* Use full Long range in rand-range (#42)
* More useful error-message with `one-of`
* Add `no-shrink` and `shrink-2` combinators
* Fix `interpose-twice-the-length` test (#52)
## simple-check 0.5.3
* All dependencies are now dev-dependencies
* Minor doc typo correction
## simple-check 0.5.2
* Improve shrinking for sequences
* __BACKWARD_INCOMPATIBILITY__: update API for gen/hash-map,
now mirrors closer the clojure.core API
## simple-check 0.5.1
* Remove unused dependency (clj-tuple)
* Add 'any' generator
* Add not-empty generator modifier
* Change one-of to shrink toward earlier generators on failure
## simple-check 0.5.0
* Shrinking will only shrink to values that could have been created by the
generator
* Bugfix with the byte and bytes generator
* Create strings of variable length (instead of always length=size)
* Fix off-by-one error in number of tests reported
* Generate sizes starting at 0, not 1
## simple-check 0.4.1
* When a property fails, add the result of the final shrink to the output
map. This can be found in [:shrunk :result]
* Make pairs respect their size during shrinking (they're just tuples)
* Add a default num-tests to `defspec`
## simple-check 0.4.0
* tuple generator now creates tuple types (from `clj-tuple`)
* __BACKWARD_INCOMPATIBILITY__: `gen/tuple` now takes var-args, instead
of a vector of arguments. So change:
```clojure
(gen/tuple [gen/int gen/boolean])
```
to
```clojure
(gen/tuple gen/int gen/boolean)
```
Tuples will now retain their size when shrunk.
* add a `ratio` generator
* correctly shrink empty lists
* switch to `codox-md` for documentation
## simple-check 0.3.0
* add strictly-positive and strictly-negative integer generators
* allow scientific notation in number of tests parameter
* allow specification of number of elements in vector generator
## simple-check 0.2.1
* remove unused `diff` function
* eliminate reflection warnings
## simple-check 0.2.0
* added `gen/byte` and `gen/bytes`
* swapped order of args in `gen/such-that`
* swapped order of args in `simple-check.clojure-test/defspec`
* add implicit `do` to `defspec` body
## simple-check 0.1.0
* First release
|