Path: blob/main/src/vs/editor/test/common/model/textModelTokens.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 { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';7import { OffsetRange } from '../../../common/core/ranges/offsetRange.js';8import { RangePriorityQueueImpl } from '../../../common/model/textModelTokens.js';910suite('RangePriorityQueueImpl', () => {1112ensureNoDisposablesAreLeakedInTestSuite();1314test('addRange', () => {15const ranges: OffsetRange[] = [];1617OffsetRange.addRange(new OffsetRange(0, 2), ranges);18OffsetRange.addRange(new OffsetRange(10, 13), ranges);19OffsetRange.addRange(new OffsetRange(20, 24), ranges);2021assert.deepStrictEqual(22ranges.map(r => r.toString()),23(['[0, 2)', '[10, 13)', '[20, 24)'])24);2526OffsetRange.addRange(new OffsetRange(2, 10), ranges);2728assert.deepStrictEqual(29ranges.map(r => r.toString()),30(['[0, 13)', '[20, 24)'])31);3233OffsetRange.addRange(new OffsetRange(14, 19), ranges);3435assert.deepStrictEqual(36ranges.map(r => r.toString()),37(['[0, 13)', '[14, 19)', '[20, 24)'])38);3940OffsetRange.addRange(new OffsetRange(10, 22), ranges);4142assert.deepStrictEqual(43ranges.map(r => r.toString()),44(['[0, 24)'])45);4647OffsetRange.addRange(new OffsetRange(-1, 29), ranges);4849assert.deepStrictEqual(50ranges.map(r => r.toString()),51(['[-1, 29)'])52);5354OffsetRange.addRange(new OffsetRange(-10, -5), ranges);5556assert.deepStrictEqual(57ranges.map(r => r.toString()),58(['[-10, -5)', '[-1, 29)'])59);60});6162test('addRangeAndResize', () => {63const queue = new RangePriorityQueueImpl();6465queue.addRange(new OffsetRange(0, 20));66queue.addRange(new OffsetRange(100, 120));67queue.addRange(new OffsetRange(200, 220));6869// disjoint70queue.addRangeAndResize(new OffsetRange(25, 27), 0);7172assert.deepStrictEqual(73queue.getRanges().map(r => r.toString()),74(['[0, 20)', '[98, 118)', '[198, 218)'])75);7677queue.addRangeAndResize(new OffsetRange(19, 20), 0);7879assert.deepStrictEqual(80queue.getRanges().map(r => r.toString()),81(['[0, 19)', '[97, 117)', '[197, 217)'])82);8384queue.addRangeAndResize(new OffsetRange(19, 97), 0);8586assert.deepStrictEqual(87queue.getRanges().map(r => r.toString()),88(['[0, 39)', '[119, 139)'])89);9091queue.addRangeAndResize(new OffsetRange(-1000, 1000), 0);9293assert.deepStrictEqual(94queue.getRanges().map(r => r.toString()),95([])96);97});98});99100101