项目原始demo,不改动
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Это архивный репозиторий. Вы можете его клонировать или просматривать файлы, но не вносить изменения или открывать задачи/запросы на слияние.
 
 
 
 

69 строки
2.2 KiB

  1. const assert = require('assert');
  2. const PinyinEngine = require('../src/cn');
  3. describe('PinyinEngine()', () => {
  4. describe('#query()', () => {
  5. it('数据应当支持 `[string]`', () => {
  6. const pinyinEngine = new PinyinEngine([
  7. '清华大学',
  8. '北京大学',
  9. '中央美院'
  10. ]);
  11. assert.deepEqual(['中央美院'], pinyinEngine.query('meiyuan'));
  12. });
  13. it('数据应当支持 `[Object]`', () => {
  14. const pinyinEngine = new PinyinEngine([{
  15. id: 0,
  16. name: '清华大学'
  17. },
  18. {
  19. id: 1,
  20. name: '北京大学'
  21. },
  22. {
  23. id: 3,
  24. name: '中央美院'
  25. }
  26. ], ['name']);
  27. assert.deepEqual([{
  28. id: 3,
  29. name: '中央美院'
  30. }], pinyinEngine.query('meiyuan'));
  31. });
  32. it('应当支持拼音首字母', () => {
  33. const pinyinEngine = new PinyinEngine([
  34. '清华大学',
  35. '北京大学',
  36. '中央美院'
  37. ]);
  38. assert.deepEqual(['中央美院'], pinyinEngine.query('zymy'));
  39. });
  40. });
  41. describe('PinyinEngine.participle()', () => {
  42. it('应当支持单个字符', () => {
  43. assert.deepEqual(['中', 'zhong'].join('\u0001'), PinyinEngine.participle('中'));
  44. });
  45. it('应当支持不在字典中的字符', () => {
  46. assert.deepEqual('😊', PinyinEngine.participle('😊'));
  47. });
  48. it('应当支持多个字符', () => {
  49. assert.deepEqual(['中国人😊', 'zhongguoren', 'zgr'].join('\u0001'), PinyinEngine.participle('中国人😊'));
  50. });
  51. it('应当支持单个多音字', () => {
  52. assert.deepEqual(['乐', 'le', 'yue'].join('\u0001'), PinyinEngine.participle('乐'));
  53. });
  54. it('应当支持多音字组合', () => {
  55. assert.deepEqual(['乐乐😊', 'lele', 'leyue', 'yuele', 'yueyue', 'll', 'ly', 'yl', 'yy'].join('\u0001'), PinyinEngine.participle('乐乐😊'));
  56. });
  57. });
  58. });