Files
pinyin-pro/test/multiple.test.js
2024-04-15 14:40:48 +08:00

85 lines
3.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { pinyin } from '../lib/index';
import { expect, describe, it } from 'vitest';
describe('multiple', () => {
it('[multiple]非单字', () => {
const result = pinyin('汉语拼音', { multiple: true });
expect(result).to.be.equal('hàn yǔ pīn yīn');
});
it('[multiple]单字', () => {
const result = pinyin('好', { multiple: true });
expect(result).to.be.equal('hǎo hào');
});
it('[multiple]去 tone 同音', () => {
const result = pinyin('好', { multiple: true, toneType: 'none' });
expect(result).to.be.equal('hao');
});
it('[multiple]非单字数组', () => {
const result = pinyin('汉语拼音', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['hàn', 'yǔ', 'pīn', 'yīn']);
});
it('[multiple]单字数组', () => {
const result = pinyin('好', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['hǎo', 'hào']);
});
it('[multiple]非汉字:字母', () => {
const result = pinyin('a', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['a']);
});
it('[multiple]非字符串multiple: false', () => {
const result = pinyin('a', { multiple: false, type: 'array' });
expect(result).to.deep.equal(['a']);
});
it('[multiple]汉字和非汉字混合multiple: false', () => {
const result = pinyin('Bar好', { multiple: false, type: 'array' });
expect(result).to.deep.equal(['B', 'a', 'r', 'hǎo']);
});
it('[multiple]非汉字:多个字母', () => {
const result = pinyin('Bar', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['B', 'a', 'r']);
});
it('[multiple]非中国汉字:越南喃字', () => {
const result = pinyin('𠄼', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['𠄼']);
});
it('[multiple]非中国汉字:多个越南喃字', () => {
const result = pinyin('𠄼𦒹', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['𠄼', '𦒹']);
});
it('[multiple]非中国汉字和汉字混合(多音字仅单字生效)', () => {
const result = pinyin('好𠄼𦒹。', { multiple: true, type: 'array' });
expect(result).to.deep.equal(['hǎo', '𠄼', '𦒹', '。']);
});
it('[multiple]multiple+surname同时使用', () => {
const result = pinyin('能', { mode: 'surname', multiple: true });
expect(result).to.be.equal('nài néng');
});
it('[multiple]multiple+surname同时使用,无surname', () => {
const result = pinyin('好', { mode: 'surname', multiple: true });
expect(result).to.be.equal('hǎo hào');
});
it('[multiple]base', () => {
const result = pinyin('好', { multiple: true });
expect(result).to.be.equal('hǎo hào');
});
it('[multiple]multiple+surname同时使用,多音字优先使用姓氏读音', () => {
const result = pinyin('数学家华罗庚', { mode: 'surname', multiple: true });
expect(result).to.be.equal('shù xué jiā huà luó gēng');
});
});