Path: blob/main/src/vs/base/test/common/normalization.test.ts
5237 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 { tryNormalizeToBase } from '../../common/normalization.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';89suite('Normalization', () => {10ensureNoDisposablesAreLeakedInTestSuite();1112test('tryNormalizeToBase', function () {13assert.strictEqual(tryNormalizeToBase('joào'), 'joao');14assert.strictEqual(tryNormalizeToBase('joáo'), 'joao');15assert.strictEqual(tryNormalizeToBase('joâo'), 'joao');16assert.strictEqual(tryNormalizeToBase('joäo'), 'joao');17// assert.strictEqual(strings.tryNormalizeToBase('joæo'), 'joao'); // not an accent18assert.strictEqual(tryNormalizeToBase('joão'), 'joao');19assert.strictEqual(tryNormalizeToBase('joåo'), 'joao');20assert.strictEqual(tryNormalizeToBase('joåo'), 'joao');21assert.strictEqual(tryNormalizeToBase('joāo'), 'joao');2223assert.strictEqual(tryNormalizeToBase('fôo'), 'foo');24assert.strictEqual(tryNormalizeToBase('föo'), 'foo');25assert.strictEqual(tryNormalizeToBase('fòo'), 'foo');26assert.strictEqual(tryNormalizeToBase('fóo'), 'foo');27// assert.strictEqual(strings.tryNormalizeToBase('fœo'), 'foo');28// assert.strictEqual(strings.tryNormalizeToBase('føo'), 'foo');29assert.strictEqual(tryNormalizeToBase('fōo'), 'foo');30assert.strictEqual(tryNormalizeToBase('fõo'), 'foo');3132assert.strictEqual(tryNormalizeToBase('andrè'), 'andre');33assert.strictEqual(tryNormalizeToBase('andré'), 'andre');34assert.strictEqual(tryNormalizeToBase('andrê'), 'andre');35assert.strictEqual(tryNormalizeToBase('andrë'), 'andre');36assert.strictEqual(tryNormalizeToBase('andrē'), 'andre');37assert.strictEqual(tryNormalizeToBase('andrė'), 'andre');38assert.strictEqual(tryNormalizeToBase('andrę'), 'andre');3940assert.strictEqual(tryNormalizeToBase('hvîc'), 'hvic');41assert.strictEqual(tryNormalizeToBase('hvïc'), 'hvic');42assert.strictEqual(tryNormalizeToBase('hvíc'), 'hvic');43assert.strictEqual(tryNormalizeToBase('hvīc'), 'hvic');44assert.strictEqual(tryNormalizeToBase('hvįc'), 'hvic');45assert.strictEqual(tryNormalizeToBase('hvìc'), 'hvic');4647assert.strictEqual(tryNormalizeToBase('ûdo'), 'udo');48assert.strictEqual(tryNormalizeToBase('üdo'), 'udo');49assert.strictEqual(tryNormalizeToBase('ùdo'), 'udo');50assert.strictEqual(tryNormalizeToBase('údo'), 'udo');51assert.strictEqual(tryNormalizeToBase('ūdo'), 'udo');5253assert.strictEqual(tryNormalizeToBase('heÿ'), 'hey');5455// assert.strictEqual(strings.tryNormalizeToBase('gruß'), 'grus');56assert.strictEqual(tryNormalizeToBase('gruś'), 'grus');57assert.strictEqual(tryNormalizeToBase('gruš'), 'grus');5859assert.strictEqual(tryNormalizeToBase('çool'), 'cool');60assert.strictEqual(tryNormalizeToBase('ćool'), 'cool');61assert.strictEqual(tryNormalizeToBase('čool'), 'cool');6263assert.strictEqual(tryNormalizeToBase('ñice'), 'nice');64assert.strictEqual(tryNormalizeToBase('ńice'), 'nice');6566// Different cases67assert.strictEqual(tryNormalizeToBase('CAFÉ'), 'cafe');68assert.strictEqual(tryNormalizeToBase('Café'), 'cafe');69assert.strictEqual(tryNormalizeToBase('café'), 'cafe');70assert.strictEqual(tryNormalizeToBase('JOÃO'), 'joao');71assert.strictEqual(tryNormalizeToBase('João'), 'joao');7273// Mixed cases with accents74assert.strictEqual(tryNormalizeToBase('CaFé'), 'cafe');75assert.strictEqual(tryNormalizeToBase('JoÃo'), 'joao');76assert.strictEqual(tryNormalizeToBase('AnDrÉ'), 'andre');7778// Precomposed accents79assert.strictEqual(tryNormalizeToBase('\u00E9'), 'e');80assert.strictEqual(tryNormalizeToBase('\u00E0'), 'a');81assert.strictEqual(tryNormalizeToBase('caf\u00E9'), 'cafe');8283// Base + combining accents - lower only84assert.strictEqual(tryNormalizeToBase('\u0065\u0301'), '\u0065\u0301');85assert.strictEqual(tryNormalizeToBase('Ã\u0061\u0300'), 'ã\u0061\u0300');86assert.strictEqual(tryNormalizeToBase('CaF\u0065\u0301'), 'caf\u0065\u0301');87});88});899091