@bitbite/filtered-list
Version:
filter a list of items
38 lines (32 loc) • 1.28 kB
text/typescript
/// <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])
})