mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
add an intermediary typed function that will fail a test
This commit is contained in:
parent
2a98231966
commit
fc2b730e04
@ -45,46 +45,20 @@ function factory (type, config, load, typed) {
|
||||
// This is the public API for all distributions
|
||||
var randFunctions = {
|
||||
|
||||
random: function(arg1, arg2, arg3) {
|
||||
var size, min, max;
|
||||
if (arguments.length > 3) {
|
||||
throw new ArgumentsError('random', arguments.length, 0, 3);
|
||||
|
||||
// `random(max)` or `random(size)`
|
||||
} else if (arguments.length === 1) {
|
||||
if (isCollection(arg1)) {
|
||||
size = arg1;
|
||||
}
|
||||
else {
|
||||
max = arg1;
|
||||
}
|
||||
// `random(min, max)` or `random(size, max)`
|
||||
} else if (arguments.length === 2) {
|
||||
if (isCollection(arg1)) {
|
||||
size = arg1;
|
||||
max = arg2;
|
||||
}
|
||||
else {
|
||||
min = arg1;
|
||||
max = arg2;
|
||||
}
|
||||
// `random(size, min, max)`
|
||||
} else {
|
||||
size = arg1;
|
||||
min = arg2;
|
||||
max = arg3;
|
||||
}
|
||||
|
||||
// TODO: validate type of min, max, and size
|
||||
|
||||
if (max === undefined) max = 1;
|
||||
if (min === undefined) min = 0;
|
||||
if (size !== undefined) {
|
||||
var res = _randomDataForMatrix(size.valueOf(), min, max, _random);
|
||||
return (size && size.isMatrix === true) ? matrix(res) : res;
|
||||
}
|
||||
else return _random(min, max);
|
||||
},
|
||||
random: typed({
|
||||
'': function() {
|
||||
return _randomOld();
|
||||
},
|
||||
'Array | number': function(arg1) {
|
||||
return _randomOld(arg1);
|
||||
},
|
||||
'Array | number, number': function(arg1, arg2) {
|
||||
return _randomOld(arg1, arg2);
|
||||
},
|
||||
'Array, number, number': function(arg1, arg2, arg3) {
|
||||
return _randomOld(arg1, arg2, arg3);
|
||||
},
|
||||
}),
|
||||
|
||||
randomInt: typed({
|
||||
'number | Array': function(arg) {
|
||||
@ -157,6 +131,47 @@ function factory (type, config, load, typed) {
|
||||
})
|
||||
}
|
||||
|
||||
var _randomOld = function(arg1, arg2, arg3) {
|
||||
var size, min, max;
|
||||
if (arguments.length > 3) {
|
||||
throw new ArgumentsError('random', arguments.length, 0, 3);
|
||||
|
||||
// `random(max)` or `random(size)`
|
||||
} else if (arguments.length === 1) {
|
||||
if (isCollection(arg1)) {
|
||||
size = arg1;
|
||||
}
|
||||
else {
|
||||
max = arg1;
|
||||
}
|
||||
// `random(min, max)` or `random(size, max)`
|
||||
} else if (arguments.length === 2) {
|
||||
if (isCollection(arg1)) {
|
||||
size = arg1;
|
||||
max = arg2;
|
||||
}
|
||||
else {
|
||||
min = arg1;
|
||||
max = arg2;
|
||||
}
|
||||
// `random(size, min, max)`
|
||||
} else {
|
||||
size = arg1;
|
||||
min = arg2;
|
||||
max = arg3;
|
||||
}
|
||||
|
||||
// TODO: validate type of min, max, and size
|
||||
|
||||
if (max === undefined) max = 1;
|
||||
if (min === undefined) min = 0;
|
||||
if (size !== undefined) {
|
||||
var res = _randomDataForMatrix(size.valueOf(), min, max, _random);
|
||||
return (size && size.isMatrix === true) ? matrix(res) : res;
|
||||
}
|
||||
else return _random(min, max);
|
||||
};
|
||||
|
||||
var _pickRandom = function(possibles, number, weights) {
|
||||
var single = (typeof number === 'undefined');
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user