Skip to content

Commit

Permalink
Auto-generated commit
Browse files Browse the repository at this point in the history
  • Loading branch information
stdlib-bot committed Nov 1, 2023
1 parent 685bd12 commit 73b92cd
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 217 deletions.
1 change: 1 addition & 0 deletions .github/.keepalive
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2023-11-01T06:09:55.711Z
12 changes: 10 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,11 @@ jobs:
fi
# Trim leading and trailing whitespace:
dep=$(echo "$dep" | xargs)
version="^$(npm view $dep version)"
version="$(npm view $dep version)"
if [[ -z "$version" ]]; then
continue
fi
version="^$version"
jq -r --arg dep "$dep" --arg version "$version" '.dependencies[$dep] = $version' package.json > package.json.tmp
mv package.json.tmp package.json
done
Expand All @@ -192,7 +196,11 @@ jobs:
fi
# Trim leading and trailing whitespace:
dep=$(echo "$dep" | xargs)
version="^$(npm view $dep version)"
version="$(npm view $dep version)"
if [[ -z "$version" ]]; then
continue
fi
version="^$version"
jq -r --arg dep "$dep" --arg version "$version" '.devDependencies[$dep] = $version' package.json > package.json.tmp
mv package.json.tmp package.json
done
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ Stephannie Jiménez Gacha <[email protected]>
Yernar Yergaziyev <[email protected]>
orimiles5 <[email protected]>
rei2hu <[email protected]>
Robert Gislason <[email protected]>
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"dependencies": {
"@stdlib/array-to-json": "^0.1.0",
"@stdlib/array-uint32": "^0.1.0",
"@stdlib/array-uint32": "^0.1.1",
"@stdlib/assert-has-own-property": "^0.1.1",
"@stdlib/assert-is-boolean": "^0.1.1",
"@stdlib/assert-is-collection": "^0.1.0",
Expand All @@ -51,7 +51,7 @@
"@stdlib/constants-float64-max-safe-integer": "^0.1.1",
"@stdlib/constants-uint32-max": "^0.1.1",
"@stdlib/math-base-ops-umul": "^0.1.1",
"@stdlib/math-base-special-floor": "^0.1.0",
"@stdlib/math-base-special-floor": "^0.1.1",
"@stdlib/math-base-special-max": "^0.1.1",
"@stdlib/random-base": "^0.1.0",
"@stdlib/string-format": "^0.1.1",
Expand All @@ -64,7 +64,7 @@
"devDependencies": {
"@stdlib/bench": "^0.1.0",
"@stdlib/math-base-assert-is-nan": "^0.1.1",
"@stdlib/math-base-assert-is-nonnegative-integer": "^0.1.0",
"@stdlib/math-base-assert-is-nonnegative-integer": "^0.1.1",
"@stdlib/process-env": "^0.1.1",
"@stdlib/random-base-minstd-shuffle": "^0.1.0",
"@stdlib/stats-kstest": "^0.1.0",
Expand Down
216 changes: 4 additions & 212 deletions test/dist/test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2018 The Stdlib Authors.
* Copyright (c) 2023 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -21,221 +21,13 @@
// MODULES //

var tape = require( 'tape' );
var UINT32_MAX = require( '@stdlib/constants-uint32-max' );
var FLOAT64_MAX_SAFE_INTEGER = require('@stdlib/constants-float64-max-safe-integer');
var isUint32Array = require( '@stdlib/assert-is-uint32array' );
var isNonNegativeInteger = require( '@stdlib/math-base-assert-is-nonnegative-integer' );
var mt19937 = require( './../../dist' );
var main = require( './../../dist' );


// TESTS //

tape( 'main export is a function', function test( t ) {
tape( 'main export is defined', function test( t ) {
t.ok( true, __filename );
t.strictEqual( typeof mt19937, 'function', 'main export is a function' );
t.end();
});

tape( 'attached to the main export is a method to generate normalized pseudorandom numbers', function test( t ) {
t.equal( typeof mt19937.normalized, 'function', 'has method' );
t.end();
});

tape( 'attached to the main export is a method to create a Mersenne Twister pseudorandom number generator', function test( t ) {
t.equal( typeof mt19937.factory, 'function', 'has method' );
t.end();
});

tape( 'attached to the main export is a method to serialize a pseudorandom number generator as JSON', function test( t ) {
t.equal( typeof mt19937.toJSON, 'function', 'has method' );
t.end();
});

tape( 'attached to the main export is the generator name', function test( t ) {
t.equal( mt19937.NAME, 'mt19937', 'has property' );
t.end();
});

tape( 'attached to the main export is the minimum possible generated number', function test( t ) {
t.equal( mt19937.MIN, 0, 'has property' );
t.end();
});

tape( 'attached to the main export is the maximum possible generated number', function test( t ) {
t.equal( mt19937.MAX, UINT32_MAX, 'has property' );
t.end();
});

tape( 'attached to the main export is the generator seed', function test( t ) {
t.equal( isUint32Array( mt19937.seed ), true, 'has property' );
t.end();
});

tape( 'attached to the main export is the generator seed length', function test( t ) {
t.equal( typeof mt19937.seedLength, 'number', 'has property' );
t.end();
});

tape( 'attached to the main export is the generator state', function test( t ) {
t.equal( isUint32Array( mt19937.state ), true, 'has property' );
t.end();
});

tape( 'attached to the main export is the generator state length', function test( t ) {
t.equal( typeof mt19937.stateLength, 'number', 'has property' );
t.end();
});

tape( 'attached to the main export is the generator state size', function test( t ) {
t.equal( typeof mt19937.byteLength, 'number', 'has property' );
t.end();
});

tape( 'the function returns pseudorandom integers strictly between 0 and 2^32-1 (inclusive)', function test( t ) {
var v;
var i;
for ( i = 0; i < 1e3; i++ ) {
v = mt19937();
t.equal( typeof v, 'number', 'returns a number' );
t.equal( isNonNegativeInteger( v ), true, 'returns a nonnegative integer' );
t.equal( v >= 0 && v <= UINT32_MAX, true, 'returns an integer between 0 and 2^32-1 (inclusive)' );
}
t.end();
});

tape( 'the `normalized` method returns pseudorandom numbers strictly between 0 (inclusive) and 1 (exclusive)', function test( t ) {
var v;
var i;
for ( i = 0; i < 1e3; i++ ) {
v = mt19937.normalized();
t.equal( typeof v, 'number', 'returns a number' );
t.equal( v >= 0.0 && v < 1.0, true, 'returns a number between 0 (inclusive) and 1 (exclusive)' );
}
t.end();
});

tape( 'attached to the `normalized` method is the generator name', function test( t ) {
t.equal( mt19937.normalized.NAME, 'mt19937', 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the minimum possible generated number', function test( t ) {
t.equal( mt19937.normalized.MIN, 0.0, 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the maximum possible generated number', function test( t ) {
t.equal( mt19937.normalized.MAX, FLOAT64_MAX_SAFE_INTEGER/(FLOAT64_MAX_SAFE_INTEGER+1), 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the generator seed', function test( t ) {
t.equal( isUint32Array( mt19937.normalized.seed ), true, 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the generator seed length', function test( t ) {
t.equal( typeof mt19937.normalized.seedLength, 'number', 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the generator state', function test( t ) {
t.equal( isUint32Array( mt19937.normalized.state ), true, 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the generator state length', function test( t ) {
t.equal( typeof mt19937.normalized.stateLength, 'number', 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is the generator state size', function test( t ) {
t.equal( typeof mt19937.normalized.byteLength, 'number', 'has property' );
t.end();
});

tape( 'attached to the `normalized` method is a method to serialize a pseudorandom number generator as JSON', function test( t ) {
t.equal( typeof mt19937.normalized.toJSON, 'function', 'has method' );
t.end();
});

tape( 'the generator supports setting the generator state', function test( t ) {
var state;
var arr;
var i;

// Move to a future state...
for ( i = 0; i < 100; i++ ) {
mt19937();
}
// Capture the current state:
state = mt19937.state;

// Move to a future state...
arr = [];
for ( i = 0; i < 100; i++ ) {
arr.push( mt19937() );
}
// Set the state:
mt19937.state = state;

// Replay previously generated values...
for ( i = 0; i < 100; i++ ) {
t.equal( mt19937(), arr[ i ], 'returns expected value. i: '+i+'.' );
}
t.end();
});

tape( 'the generator supports setting the generator state (normalized)', function test( t ) {
var state;
var arr;
var i;

// Move to a future state...
for ( i = 0; i < 100; i++ ) {
mt19937.normalized();
}
// Capture the current state:
state = mt19937.state;

// Move to a future state...
arr = [];
for ( i = 0; i < 100; i++ ) {
arr.push( mt19937.normalized() );
}
// Set the state:
mt19937.state = state;

// Replay previously generated values...
for ( i = 0; i < 100; i++ ) {
t.equal( mt19937.normalized(), arr[ i ], 'returns expected value. i: '+i+'.' );
}
t.end();
});

tape( 'the generator supports setting the generator state (normalized)', function test( t ) {
var state;
var arr;
var i;

// Move to a future state...
for ( i = 0; i < 100; i++ ) {
mt19937.normalized();
}
// Capture the current state:
state = mt19937.normalized.state;

// Move to a future state...
arr = [];
for ( i = 0; i < 100; i++ ) {
arr.push( mt19937.normalized() );
}
// Set the state:
mt19937.normalized.state = state;

// Replay previously generated values...
for ( i = 0; i < 100; i++ ) {
t.equal( mt19937.normalized(), arr[ i ], 'returns expected value. i: '+i+'.' );
}
t.strictEqual( main !== void 0, true, 'main export is defined' );
t.end();
});

0 comments on commit 73b92cd

Please sign in to comment.