ptz-math
Version:
ptz-math is a library for math operations such as random()
62 lines (49 loc) • 2.14 kB
text/typescript
import * as assert from 'ptz-assert';
import { getRandomItem, random } from './index';
describe('Math', () => {
describe('random', () => {
it(' 2 < randomNumber < 8', () => {
const min = 2;
const max = 8;
const randomNumber = random(min, max);
assert.ok(randomNumber >= min, 'randomNumber: ' + randomNumber + '; min:' + min);
assert.ok(randomNumber <= max, 'randomNumber: ' + randomNumber + '; max:' + max);
});
it(' 0 < randomNumber < 5', () => {
const min = 0;
const max = 5;
const randomNumber = random(min, max);
assert.ok(randomNumber >= min, 'randomNumber: ' + randomNumber + '; min:' + min);
assert.ok(randomNumber <= max, 'randomNumber: ' + randomNumber + '; max:' + max);
});
it(' 0 < randomNumber < 100', () => {
const min = 0;
const max = 100;
const randomNumber = random(min, max);
assert.ok(randomNumber >= min, 'randomNumber: ' + randomNumber + '; min:' + min);
assert.ok(randomNumber <= max, 'randomNumber: ' + randomNumber + '; max:' + max);
});
it(' -2 < randomNumber < 2', () => {
const min = -2;
const max = 2;
const randomNumber = random(min, max);
assert.ok(randomNumber >= min, 'randomNumber: ' + randomNumber + '; min:' + min);
assert.ok(randomNumber <= max, 'randomNumber: ' + randomNumber + '; max:' + max);
});
});
describe('getRandomItem', () => {
it('return null for null array', () => {
assert.notOk(getRandomItem(null));
assert.notOk(getRandomItem(undefined));
});
it('return first item when length equal 1', () => {
const first = 'first';
assert.equal(getRandomItem([first]), first);
});
it('return random item', () => {
const list = ['a', 'b', 'c', 'd'];
const randomItem = getRandomItem(list);
assert.contains(list, randomItem);
});
});
});