Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/common/normalization.test.ts
5237 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { tryNormalizeToBase } from '../../common/normalization.js';
8
import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';
9
10
suite('Normalization', () => {
11
ensureNoDisposablesAreLeakedInTestSuite();
12
13
test('tryNormalizeToBase', function () {
14
assert.strictEqual(tryNormalizeToBase('joào'), 'joao');
15
assert.strictEqual(tryNormalizeToBase('joáo'), 'joao');
16
assert.strictEqual(tryNormalizeToBase('joâo'), 'joao');
17
assert.strictEqual(tryNormalizeToBase('joäo'), 'joao');
18
// assert.strictEqual(strings.tryNormalizeToBase('joæo'), 'joao'); // not an accent
19
assert.strictEqual(tryNormalizeToBase('joão'), 'joao');
20
assert.strictEqual(tryNormalizeToBase('joåo'), 'joao');
21
assert.strictEqual(tryNormalizeToBase('joåo'), 'joao');
22
assert.strictEqual(tryNormalizeToBase('joāo'), 'joao');
23
24
assert.strictEqual(tryNormalizeToBase('fôo'), 'foo');
25
assert.strictEqual(tryNormalizeToBase('föo'), 'foo');
26
assert.strictEqual(tryNormalizeToBase('fòo'), 'foo');
27
assert.strictEqual(tryNormalizeToBase('fóo'), 'foo');
28
// assert.strictEqual(strings.tryNormalizeToBase('fœo'), 'foo');
29
// assert.strictEqual(strings.tryNormalizeToBase('føo'), 'foo');
30
assert.strictEqual(tryNormalizeToBase('fōo'), 'foo');
31
assert.strictEqual(tryNormalizeToBase('fõo'), 'foo');
32
33
assert.strictEqual(tryNormalizeToBase('andrè'), 'andre');
34
assert.strictEqual(tryNormalizeToBase('andré'), 'andre');
35
assert.strictEqual(tryNormalizeToBase('andrê'), 'andre');
36
assert.strictEqual(tryNormalizeToBase('andrë'), 'andre');
37
assert.strictEqual(tryNormalizeToBase('andrē'), 'andre');
38
assert.strictEqual(tryNormalizeToBase('andrė'), 'andre');
39
assert.strictEqual(tryNormalizeToBase('andrę'), 'andre');
40
41
assert.strictEqual(tryNormalizeToBase('hvîc'), 'hvic');
42
assert.strictEqual(tryNormalizeToBase('hvïc'), 'hvic');
43
assert.strictEqual(tryNormalizeToBase('hvíc'), 'hvic');
44
assert.strictEqual(tryNormalizeToBase('hvīc'), 'hvic');
45
assert.strictEqual(tryNormalizeToBase('hvįc'), 'hvic');
46
assert.strictEqual(tryNormalizeToBase('hvìc'), 'hvic');
47
48
assert.strictEqual(tryNormalizeToBase('ûdo'), 'udo');
49
assert.strictEqual(tryNormalizeToBase('üdo'), 'udo');
50
assert.strictEqual(tryNormalizeToBase('ùdo'), 'udo');
51
assert.strictEqual(tryNormalizeToBase('údo'), 'udo');
52
assert.strictEqual(tryNormalizeToBase('ūdo'), 'udo');
53
54
assert.strictEqual(tryNormalizeToBase('heÿ'), 'hey');
55
56
// assert.strictEqual(strings.tryNormalizeToBase('gruß'), 'grus');
57
assert.strictEqual(tryNormalizeToBase('gruś'), 'grus');
58
assert.strictEqual(tryNormalizeToBase('gruš'), 'grus');
59
60
assert.strictEqual(tryNormalizeToBase('çool'), 'cool');
61
assert.strictEqual(tryNormalizeToBase('ćool'), 'cool');
62
assert.strictEqual(tryNormalizeToBase('čool'), 'cool');
63
64
assert.strictEqual(tryNormalizeToBase('ñice'), 'nice');
65
assert.strictEqual(tryNormalizeToBase('ńice'), 'nice');
66
67
// Different cases
68
assert.strictEqual(tryNormalizeToBase('CAFÉ'), 'cafe');
69
assert.strictEqual(tryNormalizeToBase('Café'), 'cafe');
70
assert.strictEqual(tryNormalizeToBase('café'), 'cafe');
71
assert.strictEqual(tryNormalizeToBase('JOÃO'), 'joao');
72
assert.strictEqual(tryNormalizeToBase('João'), 'joao');
73
74
// Mixed cases with accents
75
assert.strictEqual(tryNormalizeToBase('CaFé'), 'cafe');
76
assert.strictEqual(tryNormalizeToBase('JoÃo'), 'joao');
77
assert.strictEqual(tryNormalizeToBase('AnDrÉ'), 'andre');
78
79
// Precomposed accents
80
assert.strictEqual(tryNormalizeToBase('\u00E9'), 'e');
81
assert.strictEqual(tryNormalizeToBase('\u00E0'), 'a');
82
assert.strictEqual(tryNormalizeToBase('caf\u00E9'), 'cafe');
83
84
// Base + combining accents - lower only
85
assert.strictEqual(tryNormalizeToBase('\u0065\u0301'), '\u0065\u0301');
86
assert.strictEqual(tryNormalizeToBase('Ã\u0061\u0300'), 'ã\u0061\u0300');
87
assert.strictEqual(tryNormalizeToBase('CaF\u0065\u0301'), 'caf\u0065\u0301');
88
});
89
});
90
91