Comparing version 1.1.0 to 1.2.0
{ | ||
"name": "casual", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Neat fake data generator", | ||
@@ -22,3 +22,4 @@ "main": "src/casual.js", | ||
"dependencies": { | ||
"moment": "~2.5.1" | ||
"moment": "~2.5.1", | ||
"mersenne-twister": "~1.0.1" | ||
}, | ||
@@ -25,0 +26,0 @@ "devDependencies": { |
@@ -57,8 +57,8 @@ ## Fake data generator [![Build Status](https://travis-ci.org/boo1ean/casual.png?branch=master)](https://travis-ci.org/boo1ean/casual) | ||
casual.sentence // 'laborum eius porro consequatur' | ||
casual.sentences(n = 3) // 'dolorum fuga nobis sit natus consequatur laboriosam sapiente natus quos ut' | ||
casual.title // 'systematic' | ||
casual.text // 'nemo tempore natus non accusamus eos placeat nesciunt et fugit ut odio nisi dolore non' | ||
casual.description // 'vel et rerum nostrum quia' | ||
casual.short_description // 'qui iste similique iusto' | ||
casual.sentence // 'Laborum eius porro consequatur.' | ||
casual.sentences(n = 3) // 'Dolorum fuga nobis sit natus consequatur. Laboriosam sapiente. Natus quos ut.' | ||
casual.title // 'Systematic nobis' | ||
casual.text // 'Nemo tempore natus non accusamus eos placeat nesciunt. et fugit ut odio nisi dolore non ... (long text)' | ||
casual.description // 'Vel et rerum nostrum quia. Dolorum fuga nobis sit natus consequatur.' | ||
casual.short_description // 'Qui iste similique iusto.' | ||
casual.string // 'saepe quia molestias voluptates et' | ||
@@ -94,2 +94,3 @@ casual.word // 'voluptatem' | ||
casual.random // 0.7171590146608651 (core generator) | ||
casual.integer(from = -1000, to = 1000) // 632 | ||
@@ -106,3 +107,3 @@ casual.double(from = -1000, to = 1000) // -234.12987444 | ||
casual.date(format = 'YYYY-MM-DD') // '2001-07-06' (see available formatters http://momentjs.com/docs/#/parsing/string-format/) | ||
casual.time() // '03:08:02' (see available formatters http://momentjs.com/docs/#/parsing/string-format/) | ||
casual.time(format = 'HH:mm:ss') // '03:08:02' (see available formatters http://momentjs.com/docs/#/parsing/string-format/) | ||
casual.century // 'IV' | ||
@@ -238,2 +239,12 @@ casual.am_pm // 'am' | ||
## Seeding | ||
If you want to use a specific seed in order to get a repeatable random sequence: | ||
```javascript | ||
casual.seed(123); | ||
``` | ||
It uses [Mersenne Twister](https://github.com/boo1ean/mersenne-twister) pseudorandom number generator in core. | ||
## View providers output cli | ||
@@ -240,0 +251,0 @@ |
@@ -0,1 +1,6 @@ | ||
var MersenneTwister = require('mersenne-twister'); | ||
// Pseudorandom number generator | ||
var generator = new MersenneTwister(); | ||
var array_of = function(n, generator) { | ||
@@ -15,3 +20,3 @@ var result = []; | ||
return Math.floor(Math.random() * to + from); | ||
return Math.floor(provider.random() * to + from); | ||
}, | ||
@@ -23,2 +28,6 @@ | ||
random: function() { | ||
return generator.random(); | ||
}, | ||
double: function(from, to) { | ||
@@ -28,3 +37,3 @@ from = typeof from === 'undefined' ? -1000 : from - 0; | ||
return from + (to - from) * Math.random(); | ||
return from + (to - from) * provider.random(); | ||
}, | ||
@@ -45,2 +54,6 @@ | ||
return array_of(n, provider.double); | ||
}, | ||
seed: function(seed) { | ||
generator.init_seed(seed); | ||
} | ||
@@ -47,0 +60,0 @@ }; |
var casual = require('../'); | ||
describe('API', function() { | ||
var max_times = 5; | ||
var max_times = 10; | ||
var test = function(name) { | ||
@@ -210,3 +210,3 @@ it('casual.' + name + ' should be ok', function(done) { | ||
describe('join', function() { | ||
it('Should join strings with space like a boss', function() { | ||
it('Should join strings with spaces like a boss', function() { | ||
casual.join('wow', 'such', 'sentence').should.be.equal('wow such sentence'); | ||
@@ -216,2 +216,33 @@ }) | ||
}); | ||
describe('Generator seeding', function() { | ||
var create_data_set = function() { | ||
return [ | ||
casual.description, | ||
casual.text, | ||
casual.random, | ||
casual.integer, | ||
casual.card_number, | ||
casual.phone, | ||
casual.unix_time, | ||
casual.day_of_year, | ||
casual.date, | ||
casual.time | ||
]; | ||
}; | ||
it('Should repeat random sequence on same seed', function() { | ||
var seed = 123; | ||
casual.seed(seed); | ||
var set1 = create_data_set(); | ||
casual.seed(seed); | ||
var set2 = create_data_set(); | ||
for (var i in set1) { | ||
set1[i].should.be.equal(set2[i]); | ||
} | ||
}) | ||
}); | ||
}); |
@@ -20,2 +20,6 @@ var table = require('text-table'); | ||
for (var generator in provider) { | ||
if (generator === 'seed') { | ||
continue; | ||
} | ||
result.push([ | ||
@@ -22,0 +26,0 @@ generator, |
1502
280
107330
2
18
+ Addedmersenne-twister@~1.0.1
+ Addedmersenne-twister@1.0.1(transitive)