cl-quickcheck - a Common Lisp port of the QuickCheck unit test framework
Common Lisp Ruby Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
features
.editorconfig
.envrc.sample
.gitignore
.node-version
Gemfile
Guardfile-cucumber
LICENSE.md
README.md
Rakefile
alpha.lisp
cl-quickcheck.asd
cl-quickcheck.lisp
documentation.txt
example.lisp
inv-idx.lisp
lsets.lisp
money.lisp
package.json
qcpaper.lisp
self-test.lisp
updoc.lisp

README.md

cl-quickcheck - a Common Lisp port of the QuickCheck unit test framework

EXAMPLE

$ clisp example.lisp 
Starting tests with seed #S(RANDOM-STATE #*1111111000010000101001011100110101100110011101010000110100110111)
...
ERROR (ISNT MONEY= (DOLLARS 'M) (FRANCS M))

=: M is not a number

  with values #S(MONEY :AMOUNT M :CURRENCY USD) #S(MONEY :AMOUNT -2 :CURRENCY FRANC)
  for ((M -2))
  100/100 counterexamples.
FAIL (IS MONEY= (DOLLARS M) (DOLLARS N))
  with values #S(MONEY :AMOUNT 11 :CURRENCY USD) #S(MONEY :AMOUNT -19 :CURRENCY USD)
  for ((M 11) (N -19))
  98/100 counterexamples.
  0 cases checked and passed in 100 attempts.
95 tests submitted; 2 FAILED.

See example.lisp for more information.

HOMEPAGE

http://www.yellosoft.us/quickcheck

INSTALL

$ clisp
> (ql:quickload 'cl-quickcheck)

REQUIREMENTS

Optional

DEVELOPMENT

Testing

Ensure the example script works as expected:

$ bundle
$ cucumber
Feature: Run example tests

  Scenario: Running example tests            # features/run_example_tests.feature:3
    Given the program has finished           # features/step_definitions/steps.rb:1
    Then the output is correct for each test # features/step_definitions/steps.rb:5

1 scenario (1 passed)
2 steps (2 passed)
0m4.913s

Guard can automatically run testing when the code changes:

$ bundle
$ guard -G Guardfile-cucumber
...

Linting

Keep the code tidy:

$ npm install
$ rake lint
...