Comparing version 0.3.5 to 0.3.6
@@ -46,5 +46,50 @@ "use strict"; | ||
/** | ||
#### map (gen : generator A) : generator (map A) | ||
Generates a javascript object with properties of type `A`. | ||
*/ | ||
function fromArray(arrayOfPairs) { | ||
var res = {}; | ||
arrayOfPairs.forEach(function (p) { | ||
res[p[0]] = p[1]; | ||
}); | ||
return res; | ||
} | ||
function toArray(m) { | ||
var res = []; | ||
Object.keys(m).forEach(function (k) { | ||
res.push([k, m[k]]); | ||
}); | ||
return res; | ||
} | ||
function map(generator) { | ||
generator = generator || primitive.value(); | ||
var pairGenerator = pair(primitive.string(), generator); | ||
var arrayGenerator = array(pairGenerator); | ||
return { | ||
arbitrary: function (size) { | ||
var arrayOfPairs = arrayGenerator.arbitrary(size); | ||
return fromArray(arrayOfPairs); | ||
}, | ||
shrink: function (m) { | ||
var arrayOfPairs = toArray(m); | ||
var shrinked = arrayGenerator.shrink(arrayOfPairs); | ||
return shrinked.map(fromArray); | ||
}, | ||
show: function (m) { | ||
return "{" + Object.keys(m).map(function (k) { | ||
return k + ": " + generator.show(m[k]); | ||
}).join(", ") + "}"; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
pair: pair, | ||
array: array, | ||
map: map, | ||
}; |
@@ -311,2 +311,3 @@ /** | ||
array: composite.array, | ||
map: composite.map, | ||
fn: fn.fn, | ||
@@ -313,0 +314,0 @@ fun: fn.fn, |
@@ -131,3 +131,5 @@ "use strict"; | ||
arbitrary: arbitrary.string, | ||
shrink: shrink.noop, // TODO: | ||
shrink: function (str) { | ||
return str === "" ? [] : [""]; // TODO | ||
}, | ||
show: show.def, | ||
@@ -134,0 +136,0 @@ }; |
{ | ||
"name": "jsverify", | ||
"description": "Property-based testing for JavaScript.", | ||
"version": "0.3.5", | ||
"version": "0.3.6", | ||
"homepage": "https://github.com/phadej/jsverify", | ||
@@ -33,10 +33,10 @@ "author": { | ||
"esprima": "~1.2.2", | ||
"underscore": "~1.6.0", | ||
"underscore": "~1.7.0", | ||
"lodash": "~2.4.1", | ||
"q": "~2.0.2", | ||
"when": "~3.4.0", | ||
"browserify": "~4.2.0", | ||
"browserify": "~5.12.1", | ||
"karma-chrome-launcher": "~0.1.2", | ||
"karma-firefox-launcher": "~0.1.3", | ||
"mocha": "~1.20.1", | ||
"mocha": "~1.21.4", | ||
"karma-mocha": "~0.1.3", | ||
@@ -43,0 +43,0 @@ "karma-jasmine": "~0.2.2", |
@@ -156,3 +156,8 @@ # JSVerify | ||
#### map (gen : generator A) : generator (map A) | ||
Generates a javascript object with properties of type `A`. | ||
#### fn (gen : generator a) : generator (b -> a) | ||
@@ -239,2 +244,3 @@ | ||
- 0.3.6 map generator | ||
- 0.3.5 Fix forgotten rngState in console output | ||
@@ -241,0 +247,0 @@ - 0.3.4 Dependencies update |
34613
847
306