Comparing version 0.1.0 to 0.1.1
@@ -71,2 +71,5 @@ /* jshint node: true */ | ||
}, | ||
literate: { | ||
"README.md": "lib/jsverify.js", | ||
}, | ||
}); | ||
@@ -78,2 +81,3 @@ | ||
grunt.loadNpmTasks('grunt-contrib-jasmine'); | ||
grunt.loadNpmTasks('grunt-literate'); | ||
@@ -84,47 +88,2 @@ // Default task. | ||
grunt.registerTask('jasmine-build', ['jasmine:all:build']); | ||
// use esprima to generate README.md from source | ||
grunt.registerTask("readme", "Generate README.md", function () { | ||
var src = "./lib/jsverify.js"; | ||
var dest = "README.md"; | ||
var esprima = require("esprima"); | ||
var _ = require("underscore"); | ||
var content = grunt.file.read(src); | ||
var syntax = esprima.parse(content, { comment: true }); | ||
var comments = syntax.comments; | ||
function isWhitespace(str) { | ||
return (/^\s*$/).test(str); | ||
} | ||
var mdContent = _.reduce(comments, function (acc, comment) { | ||
if (comment.type === "Block" && comment.value[0] === "*") { | ||
// block comment starting with /** | ||
var value = comment.value.slice(1); | ||
var lines = value.split(/\n/); | ||
var first = _.find(lines, function (line) { return !isWhitespace(line); } ); | ||
var indent = first ? /^(\s*)/.exec(first)[1] : ""; | ||
// unindent lines | ||
lines = _.map(lines, function (line) { | ||
if (line.indexOf(indent) === 0) { | ||
return line.replace(indent, ""); | ||
} else if (isWhitespace(line)) { | ||
return ""; | ||
} else { | ||
return line; | ||
} | ||
}); | ||
return acc + lines.join("\n"); | ||
} else { | ||
// do nothing with rest | ||
return acc; | ||
} | ||
}, ""); | ||
grunt.file.write(dest, mdContent); | ||
}); | ||
}; |
@@ -728,6 +728,7 @@ /** | ||
- run `grunt readme` to regenerate `README.md` | ||
- run `grunt literate` to regenerate `README.md` | ||
## Release History | ||
- 0.1.1 Use grunt-literate | ||
- 0.1.0 Usable library | ||
@@ -734,0 +735,0 @@ - 0.0.2 Documented preview |
{ | ||
"name": "jsverify", | ||
"description": "Property-based testing for JavaScript.", | ||
"version": "0.1.0", | ||
"homepage": "https://github.com/phadej/jsverify", | ||
"author": { | ||
"name": "Oleg Grenrus", | ||
"email": "oleg.grenrus@iki.fi", | ||
"url": "http://oleg.fi" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/phadej/jsverify.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/phadej/jsverify/issues" | ||
}, | ||
"licenses": [ | ||
{ | ||
"type": "BSD", | ||
"url": "https://github.com/phadej/jsverify/blob/master/LICENSE" | ||
} | ||
], | ||
"main": "lib/jsverify", | ||
"engines": { | ||
"node": ">= 0.8.0" | ||
}, | ||
"scripts": { | ||
"test": "grunt test" | ||
}, | ||
"devDependencies": { | ||
"grunt-contrib-jshint": "~0.6.0", | ||
"grunt-contrib-watch": "~0.4.0", | ||
"grunt-contrib-jasmine": "~0.5.1", | ||
"underscore": "~1.5.2", | ||
"esprima": "~1.0.4", | ||
"grunt": "~0.4.1" | ||
}, | ||
"keywords": [ | ||
"testing", | ||
"unit testing", | ||
"TDD", | ||
"property-based testing", | ||
"quickcheck", | ||
"quick check", | ||
"jscheck" | ||
] | ||
"name": "jsverify", | ||
"description": "Property-based testing for JavaScript.", | ||
"version": "0.1.1", | ||
"homepage": "https://github.com/phadej/jsverify", | ||
"author": { | ||
"name": "Oleg Grenrus", | ||
"email": "oleg.grenrus@iki.fi", | ||
"url": "http://oleg.fi" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/phadej/jsverify.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/phadej/jsverify/issues" | ||
}, | ||
"licenses": [ | ||
{ | ||
"type": "BSD", | ||
"url": "https://github.com/phadej/jsverify/blob/master/LICENSE" | ||
} | ||
], | ||
"main": "lib/jsverify", | ||
"engines": { | ||
"node": ">= 0.8.0" | ||
}, | ||
"scripts": { | ||
"test": "grunt test" | ||
}, | ||
"devDependencies": { | ||
"grunt-contrib-jshint": "~0.6.0", | ||
"grunt-contrib-watch": "~0.4.0", | ||
"grunt-contrib-jasmine": "~0.5.1", | ||
"underscore": "~1.5.2", | ||
"esprima": "~1.0.4", | ||
"grunt": "~0.4.1", | ||
"grunt-literate": "~0.1.1" | ||
}, | ||
"keywords": [ | ||
"testing", | ||
"unit testing", | ||
"TDD", | ||
"property-based testing", | ||
"quickcheck", | ||
"quick check", | ||
"jscheck" | ||
] | ||
} |
@@ -1,2 +0,1 @@ | ||
# JSVerify [![Build Status](https://secure.travis-ci.org/phadej/jsverify.png?branch=master)](http://travis-ci.org/phadej/jsverify) | ||
@@ -23,3 +22,2 @@ | ||
``` | ||
## Documentation | ||
@@ -57,17 +55,12 @@ | ||
- generator a := { arbitrary : a, shrink : a -> [a] } | ||
### jsc._ - miscellaneous utilities | ||
#### assert (exp : bool) (message : string) : void | ||
Throw an error with `message` if `exp` is falsy. | ||
#### id (x : any) : any | ||
Identity function. | ||
#### isEqual (a b : value) : bool | ||
Equality test for `value` objects. See `value` generator. | ||
#### FMap (eq : a -> a -> bool) : FMap a | ||
@@ -82,3 +75,2 @@ | ||
- FMap.contains (key : a) : obool | ||
#### isPromise p : bool | ||
@@ -88,3 +80,2 @@ | ||
Returns `true` if p is an object with `.then` function property. | ||
#### withPromise (Functor f) (p : f a) (f : a -> b) : f b | ||
@@ -95,7 +86,5 @@ | ||
Using `withPromise` makes code look very much [CPS-style](http://en.wikipedia.org/wiki/Continuation-passing_style). | ||
#### getRandomArbitrary (min max : number) : number | ||
Returns random number from `[min, max)` range. | ||
#### getRandomInt (min max : int) : int | ||
@@ -108,9 +97,6 @@ | ||
``` | ||
### Properties | ||
#### forall (gens : generator a ...) (prop : a -> property_rec) : property | ||
Property constructor | ||
#### check (prop : property) (opts : checkoptions) : promise result + result | ||
@@ -124,49 +110,35 @@ | ||
- `opts.quiet` - do not `console.log` | ||
### Primitive generators | ||
#### integer (maxsize : nat) : generator integer | ||
Integers, ℤ | ||
#### nat (maxsize : nat) : generator nat | ||
Natural numbers, ℕ (0, 1, 2...) | ||
#### number (maxsize : number) : generator number | ||
JavaScript numbers, "doubles", ℝ. `NaN` and `Infinity` are not included. | ||
#### bool () : generator bool | ||
Booleans, `true` or `false`. | ||
#### oneof (args : array any) : generator any | ||
Random element of `args` array. | ||
#### string () : generator string | ||
Strings | ||
#### array (gen : generator a) : generator (array a) | ||
#### value : generator value | ||
JavaScript value: boolean, number, string, array of values or object with `value` values. | ||
#### fun (gen : generator a) : generator (b -> a) | ||
Unary functions. | ||
### Generator combinators | ||
#### pair (a : generator A) (b : generator B) : generator (A * B) | ||
If not specified `a` and `b` are equal to `integer()`. | ||
#### suchthat (gen : generator a) (p : a -> bool) : generator {a | p a == true} | ||
Generator of values that satisfy `p` predicate. It's adviced that `p`'s accept rate is high. | ||
## Contributing | ||
@@ -181,6 +153,7 @@ | ||
- run `grunt readme` to regenerate `README.md` | ||
- run `grunt literate` to regenerate `README.md` | ||
## Release History | ||
- 0.1.1 Use grunt-literate | ||
- 0.1.0 Usable library | ||
@@ -187,0 +160,0 @@ - 0.0.2 Documented preview |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
296600
7
8524
177