mirror of
https://github.com/josdejong/mathjs.git
synced 2025-12-08 19:46:04 +00:00
50 lines
2.0 KiB
JavaScript
50 lines
2.0 KiB
JavaScript
var assert = require('assert');
|
|
var math = require('../../../index');
|
|
var isPrime = math.isPrime;
|
|
var bignumber = math.bignumber;
|
|
var complex = math.complex;
|
|
|
|
describe('isPrime', function() {
|
|
|
|
it('should test whether a number is prime', function() {
|
|
assert.strictEqual(isPrime(0), false);
|
|
assert.strictEqual(isPrime(-0), false);
|
|
assert.strictEqual(isPrime(-1), false);
|
|
assert.strictEqual(isPrime(1), false);
|
|
assert.strictEqual(isPrime(2), true);
|
|
assert.strictEqual(isPrime(3), true);
|
|
assert.strictEqual(isPrime(5), true);
|
|
assert.strictEqual(isPrime(7), true);
|
|
assert.strictEqual(isPrime(4), false);
|
|
assert.strictEqual(isPrime(100), false);
|
|
assert.strictEqual(isPrime(102), false);
|
|
assert.strictEqual(isPrime(999), false);
|
|
});
|
|
|
|
it('should test whether a BigNumber is prime', function() {
|
|
assert.strictEqual(isPrime(bignumber(0)), false);
|
|
assert.strictEqual(isPrime(bignumber(-0)), false);
|
|
assert.strictEqual(isPrime(bignumber(-1)), false);
|
|
assert.strictEqual(isPrime(bignumber(1)), false);
|
|
assert.strictEqual(isPrime(bignumber(2)), true);
|
|
assert.strictEqual(isPrime(bignumber(3)), true);
|
|
assert.strictEqual(isPrime(bignumber(5)), true);
|
|
assert.strictEqual(isPrime(bignumber(7)), true);
|
|
assert.strictEqual(isPrime(bignumber(4)), false);
|
|
assert.strictEqual(isPrime(bignumber(100)), false);
|
|
assert.strictEqual(isPrime(bignumber(102)), false);
|
|
assert.strictEqual(isPrime(bignumber(999)), false);
|
|
});
|
|
|
|
it('should test isPrime element wise on an Array', function() {
|
|
assert.deepEqual(isPrime([0, 1, 2, 5, 9]), [false, false, true, true, false]);
|
|
});
|
|
|
|
it('should throw an error in case of unsupported data types', function() {
|
|
assert.throws(function () {isPrime(complex(2, 3))}, /TypeError: Unexpected type of argument/);
|
|
assert.throws(function () {isPrime(new Date())}, /TypeError: Unexpected type of argument/);
|
|
assert.throws(function () {isPrime({})}, /TypeError: Unexpected type of argument/);
|
|
});
|
|
|
|
});
|