56 lines
1.3 KiB
JavaScript
Executable File
56 lines
1.3 KiB
JavaScript
Executable File
// random.test
|
|
|
|
/* eslint-env jest */
|
|
|
|
import { randint, genid } from './random.js'
|
|
|
|
describe('test .randint() method:', () => {
|
|
const randArr = []
|
|
while (randArr.length < 20) {
|
|
randArr.push(randint())
|
|
}
|
|
test(`test .randint() after ${randArr.length} times`, () => {
|
|
expect(randArr).toHaveLength(20)
|
|
const uniqVal = Array.from(new Set(randArr))
|
|
expect(uniqVal.length).toBeGreaterThan(10)
|
|
})
|
|
|
|
test('test .randint() with same min/max', () => {
|
|
const q = randint(10, 10)
|
|
expect(q).toEqual(10)
|
|
})
|
|
|
|
const min = 50
|
|
const max = 80
|
|
test(`test .randint() between ${min} - ${max}`, () => {
|
|
for (let i = 0; i < 100; i++) {
|
|
const q = randint(min, max)
|
|
expect(q).toBeGreaterThanOrEqual(min)
|
|
expect(q).toBeLessThanOrEqual(max)
|
|
}
|
|
})
|
|
})
|
|
|
|
describe('test .genid() method:', () => {
|
|
test('check .genid() default param', () => {
|
|
const actual = genid()
|
|
expect(actual).toHaveLength(32)
|
|
})
|
|
|
|
test('check .genid(512)', () => {
|
|
const actual = genid(512)
|
|
expect(actual).toHaveLength(512)
|
|
})
|
|
|
|
const len = 100
|
|
const ids = []
|
|
while (ids.length < len) {
|
|
ids.push(genid())
|
|
}
|
|
const uniques = Array.from(new Set(ids))
|
|
test('check .genid() always return unique string', () => {
|
|
expect(ids).toHaveLength(len)
|
|
expect(uniques).toHaveLength(ids.length)
|
|
})
|
|
})
|