Path: blob/main/extensions/copilot/src/util/test/node/variableLengthQuantity.spec.ts
13401 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 { describe, expect, it } from 'vitest';6import { readVariableLengthQuantity, writeVariableLengthQuantity } from '../../common/variableLengthQuantity';78describe('variableLengthQuantity', () => {9it('is sane', () => {10const numbers = [11-100000,12-100,13-1,140,151,16100,17100000,18];1920for (const n of numbers) {21const b = writeVariableLengthQuantity(n);22const { value, consumed } = readVariableLengthQuantity(b, 0);23expect(value).toBe(n);24expect(consumed).toBe(b.buffer.length);25}26});2728it('is fuzzy', () => {29for (let i = 0; i < 1000; i++) {30const x = Math.round((Math.random() * 2 ** 31) * (Math.random() < 0.5 ? -1 : 1));3132const b = writeVariableLengthQuantity(x);33const { value, consumed } = readVariableLengthQuantity(b, 0);34expect(value).toBe(x);35expect(consumed).toBe(b.buffer.length);36}37});38});394041