{"_id":"claire","_rev":"4181005","name":"claire","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","dist-tags":{"latest":"0.4.1"},"maintainers":[{"name":"killdream","email":""}],"time":{"modified":"2026-03-01T21:49:56.000Z","created":"2013-02-28T16:03:41.805Z","0.4.1":"2013-05-25T14:17:36.577Z","0.3.4":"2013-04-27T19:32:16.975Z","0.3.3":"2013-04-21T15:24:04.524Z","0.3.2":"2013-03-21T00:54:59.375Z","0.3.0":"2013-03-10T01:13:57.735Z","0.2.0":"2013-03-10T00:15:14.212Z","0.1.0":"2013-02-28T16:03:41.805Z"},"users":{},"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"versions":{"0.4.1":{"name":"claire","version":"0.4.1","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0","flaw":"~0.1.0"},"devDependencies":{"LiveScript":"~1.1.1","es5-shim":"~2.0.5","browserify":"~2.4.3","brofist-tap":"~0.1.0","brofist":"~0.2.3","brofist-minimal":"~0.1.1"},"scripts":{"test":"make test","prepublish":"make prepublish"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"build/test/tap.js","browsers":["ie/6..latest","chrome/20..latest","firefox/15..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6","android-browser/4.2"]},"_id":"claire@0.4.1","dist":{"shasum":"ca70dc1261ddd8f25a1afabad3805c39fce263bc","size":120741,"noattachment":false,"key":"/claire/-/claire-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.4.1.tgz"},"_from":".","_npmVersion":"1.2.16","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1369491456577,"_hasShrinkwrap":false,"_cnpm_publish_time":1369491456577,"_cnpmcore_publish_time":"2021-12-17T18:17:47.138Z"},"0.3.4":{"name":"claire","version":"0.3.4","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0","flaw":"~0.1.0"},"devDependencies":{"LiveScript":"~1.1.1","mocha":"~1.8.1","es5-shim":"~2.0.5","browserify":"~2.4.3"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest-browser":"npm run-script test-cc && ./node_modules/.bin/browserify -o test/browser/suite-bundle.js -e test/browser/suite.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"test/browser/suite.js","preprocess":"npm run-script pretest-browser","browsers":{"ie":[6,7,8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[10,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.3.4","dist":{"shasum":"8262af1888ceb1ff41c281dcf1a035a81d8f413c","size":104556,"noattachment":false,"key":"/claire/-/claire-0.3.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.3.4.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1367091136975,"_hasShrinkwrap":false,"_cnpm_publish_time":1367091136975,"_cnpmcore_publish_time":"2021-12-17T18:17:47.455Z"},"0.3.3":{"name":"claire","version":"0.3.3","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0","flaw":"~0.1.0"},"devDependencies":{"LiveScript":"~1.1.1","mocha":"~1.8.1","es5-shim":"~2.0.5","browserify":"~2.4.3"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest-browser":"npm run-script test-cc && ./node_modules/.bin/browserify -o test/browser/suite-bundle.js -e test/browser/suite.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"test/browser/suite.js","preprocess":"npm run-script pretest-browser","browsers":{"ie":[6,7,8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[10,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.3.3","dist":{"shasum":"7dd7d7ce773237b033572bfd3348af52d658e27e","size":413952,"noattachment":false,"key":"/claire/-/claire-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.3.3.tgz"},"_from":".","_npmVersion":"1.2.16","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1366557844524,"_hasShrinkwrap":false,"_cnpm_publish_time":1366557844524,"_cnpmcore_publish_time":"2021-12-17T18:17:47.802Z"},"0.3.2":{"name":"claire","version":"0.3.2","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0","flaw":"~0.1.0"},"devDependencies":{"LiveScript":"~1.1.1","mocha":"~1.8.1","es5-shim":"~2.0.5","browserify":"~2.4.3"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest-browser":"npm run-script test-cc && ./node_modules/.bin/browserify -o test/browser/suite-bundle.js -e test/browser/suite.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"test/browser/suite.js","preprocess":"npm run-script pretest-browser","browsers":{"ie":[6,7,8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[10,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.3.2","dist":{"shasum":"61d55efe83e8469ff684ba8bf4fa73053375a3ed","size":446325,"noattachment":false,"key":"/claire/-/claire-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.3.2.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1363827299375,"_hasShrinkwrap":false,"_cnpm_publish_time":1363827299375,"_cnpmcore_publish_time":"2021-12-17T18:17:48.113Z"},"0.3.0":{"name":"claire","version":"0.3.0","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0"},"devDependencies":{"claire-mocha":"~0.2.0","LiveScript":"~1.1.1","chai":"~1.5.0","mocha":"~1.8.1","es5-shim":"~2.0.5"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"lib-test/*.js","preprocess":"npm run-script pretest","browsers":{"ie":[6,7,8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[10,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.3.0","dist":{"shasum":"a91fbd871c623540e33f40da58e1ed8653fc4c14","size":274820,"noattachment":false,"key":"/claire/-/claire-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.3.0.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1362878037735,"_hasShrinkwrap":false,"_cnpm_publish_time":1362878037735,"_cnpmcore_publish_time":"2021-12-17T18:17:48.457Z"},"0.2.0":{"name":"claire","version":"0.2.0","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0"},"devDependencies":{"claire-mocha":"~0.1.2","LiveScript":"~1.1.1","chai":"~1.5.0","mocha":"~1.8.1","es5-shim":"~2.0.5"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"lib-test/*.js","preprocess":"npm run-script pretest","browsers":{"ie":[6,7,8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[10,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.2.0","dist":{"shasum":"f3bb1a425575e62bb4414c40ebab33b74069781e","size":274606,"noattachment":false,"key":"/claire/-/claire-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.2.0.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1362874514212,"_hasShrinkwrap":false,"_cnpm_publish_time":1362874514212,"_cnpmcore_publish_time":"2021-12-17T18:17:48.781Z"},"0.1.0":{"name":"claire","version":"0.1.0","description":"Property-based testing library (à lá QuickCheck/ScalaCheck).","main":"./lib/index.js","directories":{"doc":"docs"},"dependencies":{"boo":"~1.2.4","prelude-ls":"~0.6.0"},"devDependencies":{"claire-mocha":"~0.1.0","LiveScript":"~1.1.1","chai":"~1.5.0","mocha":"~1.8.1"},"scripts":{"test-cc":"./node_modules/.bin/lsc -o lib-test -c test/*.ls && ./node_modules/.bin/lsc -o lib -c src/*.ls","test":"./node_modules/.bin/mocha lib-test/*.js","pretest":"npm run-script test-cc","prepublish":"./node_modules/.bin/lsc -o lib -c src/*.ls"},"repository":{"type":"git","url":"git://github.com/killdream/claire.git"},"keywords":["testing","test","property-based testing","random testing","quickcheck"],"author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"license":"MIT","readmeFilename":"README.md","calliope":{"output":"docs/api","copyright":"© 2013 Quildreen \"Sorella\" Motta","packages":[{"files":["src/*.ls"]}]},"testling":{"files":"lib-test/*.js","browsers":{"ie":[8,9,10],"firefox":[15,"nightly"],"chrome":[21,22,"canary"],"opera":[11,12,"next"],"safari":[5.1]},"harness":"mocha"},"_id":"claire@0.1.0","dist":{"shasum":"ab250b05f5e53adf533e5c08d8e509c662ef46b4","size":153100,"noattachment":false,"key":"/claire/-/claire-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/claire/download/claire-0.1.0.tgz"},"_npmVersion":"1.1.69","_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"maintainers":[{"name":"killdream","email":""}],"publish_time":1362067421805,"_hasShrinkwrap":false,"_cnpm_publish_time":1362067421805,"_cnpmcore_publish_time":"2021-12-17T18:17:49.130Z"}},"readme":"Claire\n======\n\n[![Build Status](https://travis-ci.org/killdream/claire.png)](https://travis-ci.org/killdream/claire)\n\nClaire is a random testing library for both property-based testing\n(QuickCheck-like) and random program generation (ScalaCheck command's\nlike), which allows you to express your code's behaviours and invariants\nin a clear way.\n\n### Platform support\n\n[![browser support](http://ci.testling.com/killdream/claire.png)](http://ci.testling.com/killdream/claire)\n\n\n### Example \n\nThese uses the Claire API to collect data about a test. To have something that\nmakes sense of the collected data and works out of the box for testing, check\nout [Claire for Mocha][claire-mocha].\n\n```js\nvar claire = require('claire')\nvar _      = claire.data\n\n// Simple universal quantifier\nvar concat_p = claire.forAll ( _.List(_.Int), _.List(_.Int) )\n                     .satisfy(function(xs, ys) {\n                                return xs.length + ys.length\n                                    == xs.concat(ys).length })\n\n// Checking returns a Report with meta-data about the tests.\nclaire.check(100, concat_p)\n// (Object <| Report) => { property: { invariant: [Function] }\n//                       , passed: [ { ok: true, labels: [], arguments: [Object] }, ... ]\n//                       , failed: []\n//                       , ignored: []\n//                       , all: [ { ok: true, labels: [], arguments: [Object] }, ... ]\n//                       , labels: {}\n//                       , veredict: 'passed' }\n\n\n// Conditional properties\nvar sqrt_p = claire.forAll ( _.Int )\n                   .given  (function(n){ return n > 0 })\n                   .satisfy(function(n){ return Math.sqrt(n * n) == n })\n\n// The report can be made human-readable by just calling `.toString()'\nclaire.check(100, sqrt_p).toString()\n// (String) => \"+ OK passed 100 tests. 129 (56%) tests ignored.\"\n\n\n// Data classifiers\nvar reverse_p = claire.forAll ( _.List(_.Int), _.List(_.Int) )\n                      .satisfy(function(xs, ys) {\n                                 (reverse(xs.concat(ys)) + '')\n                                 == (reverse(ys).concat(reverse(xs)) + '') })\n                      .classify(function(xs, ys) {\n                                  return xs.length == 0? 'trivial'\n                                       : ys.length == 0? 'trivial'\n                                       : /* otherwise */ 'ok' })\n                                       \nclaire.check(100, reverse_p).toString()\n// (String) => \"+ OK passed 100 tests. \n//              > Collected test data:\n//                  o 85% - ok\n//                  o 15% - trivial\"\n```\n\n\n### Installing\n\nJust grab it from NPM:\n\n```js\nnpm install claire\n```\n\n\n### Documentation\n\nA reference of the API can be built using [Calliope][]:\n\n```js\n$ npm install -g calliope\n$ calliope build\n```\n\nA fully narrated documentation explaining the concepts behind the\nlibrary is planned for a future release.\n\n\n### Tests\n\nYou can run all tests using Mocha:\n\n```js\n$ npm test\n```\n\n\n### Licence\n\nMIT/X11. ie.: do whatever you want.\n\n\n[claire-mocha]: http://github.com/killdream/claire-mocha.git\n[Calliope]: http://github.com/killdream/calliope.git\n","_attachments":{},"readmeFilename":"README.md","license":"MIT"}