1*8d3f3824SCedric van Puttenimport { findLastIndex, groupBy, intersecting, replaceValue } from '../array'; 28d307f52SEvan Bacon 38d307f52SEvan Bacondescribe(findLastIndex, () => { 48d307f52SEvan Bacon it('should return the last index of an item based on a given criteria', () => { 58d307f52SEvan Bacon const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 68d307f52SEvan Bacon const predicate = (item: number) => item % 2 === 0; 78d307f52SEvan Bacon expect(findLastIndex(array, predicate)).toBe(9); 88d307f52SEvan Bacon }); 98d307f52SEvan Bacon}); 108d307f52SEvan Bacon 118d307f52SEvan Bacondescribe(intersecting, () => { 128d307f52SEvan Bacon it('should return a list of items that intersect between two given arrays', () => { 138d307f52SEvan Bacon const a = [1, 2, 3]; 148d307f52SEvan Bacon const b = [1, 2, 3, 4, 5, 6]; 158d307f52SEvan Bacon expect(intersecting(a, b)).toEqual([1, 2, 3]); 168d307f52SEvan Bacon }); 178d307f52SEvan Bacon}); 183d6e487dSEvan Bacon 193d6e487dSEvan Bacondescribe(replaceValue, () => { 203d6e487dSEvan Bacon it(`should replace a value in an array`, () => { 213d6e487dSEvan Bacon expect(replaceValue([1, 2, 3], 1, 2)).toEqual([2, 2, 3]); 223d6e487dSEvan Bacon expect(replaceValue([1, 2, 3], 4, 5)).toEqual([1, 2, 3]); 233d6e487dSEvan Bacon }); 243d6e487dSEvan Bacon}); 25*8d3f3824SCedric van Putten 26*8d3f3824SCedric van Puttendescribe(groupBy, () => { 27*8d3f3824SCedric van Putten it(`should group list items by returned key`, () => { 28*8d3f3824SCedric van Putten expect( 29*8d3f3824SCedric van Putten groupBy([{ name: 'John' }, { name: 'Wick' }], (character) => character.name) 30*8d3f3824SCedric van Putten ).toMatchObject({ 31*8d3f3824SCedric van Putten John: [{ name: 'John' }], 32*8d3f3824SCedric van Putten Wick: [{ name: 'Wick' }], 33*8d3f3824SCedric van Putten }); 34*8d3f3824SCedric van Putten }); 35*8d3f3824SCedric van Putten}); 36