Path: blob/main/src/vs/base/test/common/arraysFind.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { MonotonousArray, findFirstMonotonous, findLastMonotonous } from '../../common/arraysFind.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';89suite('Arrays', () => {10ensureNoDisposablesAreLeakedInTestSuite();1112test('findLastMonotonous', () => {13const array = [1, 4, 5, 7, 55, 59, 60, 61, 64, 69];1415const result = findLastMonotonous(array, n => n <= 60);16assert.strictEqual(result, 60);1718const result2 = findLastMonotonous(array, n => n <= 62);19assert.strictEqual(result2, 61);2021const result3 = findLastMonotonous(array, n => n <= 1);22assert.strictEqual(result3, 1);2324const result4 = findLastMonotonous(array, n => n <= 70);25assert.strictEqual(result4, 69);2627const result5 = findLastMonotonous(array, n => n <= 0);28assert.strictEqual(result5, undefined);29});3031test('findFirstMonotonous', () => {32const array = [1, 4, 5, 7, 55, 59, 60, 61, 64, 69];3334const result = findFirstMonotonous(array, n => n >= 60);35assert.strictEqual(result, 60);3637const result2 = findFirstMonotonous(array, n => n >= 62);38assert.strictEqual(result2, 64);3940const result3 = findFirstMonotonous(array, n => n >= 1);41assert.strictEqual(result3, 1);4243const result4 = findFirstMonotonous(array, n => n >= 70);44assert.strictEqual(result4, undefined);4546const result5 = findFirstMonotonous(array, n => n >= 0);47assert.strictEqual(result5, 1);48});4950test('MonotonousArray', () => {51const arr = new MonotonousArray([1, 4, 5, 7, 55, 59, 60, 61, 64, 69]);52assert.strictEqual(arr.findLastMonotonous(n => n <= 0), undefined);53assert.strictEqual(arr.findLastMonotonous(n => n <= 0), undefined);54assert.strictEqual(arr.findLastMonotonous(n => n <= 5), 5);55assert.strictEqual(arr.findLastMonotonous(n => n <= 6), 5);56assert.strictEqual(arr.findLastMonotonous(n => n <= 55), 55);57assert.strictEqual(arr.findLastMonotonous(n => n <= 60), 60);58assert.strictEqual(arr.findLastMonotonous(n => n <= 80), 69);59});60});616263