UNPKG

spica

Version:

Supervisor, Coroutine, Channel, select, AtomicPromise, Cancellation, Cache, List, Queue, Stack, and some utils.

55 lines (48 loc) 1.32 kB
import { Sequence } from '../../../sequence'; import { counter } from '../../../../counter'; describe('Unit: lib/monad/sequence/member/static/random', () => { describe('Sequence.random', () => { it('validate', () => { assert.deepStrictEqual( Sequence.random(counter()) .take(5) .subsequences() .filter(ns => ns.length === 2) .extract() .reduce((cnt, [n, m]) => n !== m ? ++cnt : cnt, 0), 10); assert.notDeepStrictEqual( Sequence.random() .take(9) .extract(), Sequence.random() .take(9) .extract()); }); it('number', () => { assert.deepStrictEqual( Sequence.random() .take(9) .map(n => n >= 0 && n < 1) .extract(), [true, true, true, true, true, true, true, true, true]); }); it('array', () => { assert.deepStrictEqual( Sequence.random([0, 1, 2]) .take(9) .map(n => { switch (n) { case 0: case 1: case 2: return true; default: return false; } }) .extract(), [true, true, true, true, true, true, true, true, true]); }); }); });