UNPKG

@bitbite/filtered-list

Version:

filter a list of items

38 lines (32 loc) 1.28 kB
/// <reference path="../index.d.ts" /> import test from "ava"; import { FilteredList, And, Or, Not } from "../src/index"; test('filter numbers list', t => { const filteredList = new FilteredList<number>([1,2,3,4,5]) const lg3 = (num: number) => num > 3; const filtered = filteredList.assert(lg3) t.deepEqual(filtered, [4,5]) }) test('filter list using And Operator', t => { const filteredList = new FilteredList<number>([1,2,3,4,5]) const lg2 = (num: number) => num > 2; const lt4 = (num: number) => num < 4; const lt4Andlg2 = And<Number>(lt4, lg2); const filtered = filteredList.assert(lt4Andlg2) t.deepEqual(filtered, [3]) }) test('filter list using Or Operator', t => { const filteredList = new FilteredList<number>([1,2,3,4,5]) const lt2 = (num: number) => num < 2; const lg4 = (num: number) => num > 4; const lt2Orlg4 = Or<number>(lt2, lg4); const filtered = filteredList.assert(lt2Orlg4) t.deepEqual(filtered, [1,5]) }) test('filter list using Not Operator', t => { const filteredList = new FilteredList<number>([1,2,3,4,5]) const is3 = (num: number) => num === 3; const notIs3 = Not<number>(is3); const filtered = filteredList.assert(notIs3) t.deepEqual(filtered, [1,2,4,5]) })