UNPKG

4.16 kBJavaScriptView Raw
1
2import { encode, decode, pair, parse } from './swu-parse';
3
4it('should parse a symbol', () => {
5 expect(parse.symbol('񀀁')).toEqual({ symbol: '񀀁' })
6})
7
8it('should parse a symbol with coordinate', () => {
9 expect(parse.symbol('ń€€đ€†đ€†')).toEqual({ symbol: 'ń€€', coord: [500, 500] })
10})
11
12it('should parse a symbol with style', () => {
13 expect(parse.symbol('񀀁-C')).toEqual({ symbol: '񀀁', style: '-C' })
14})
15
16it('should not break on invalid symbol key or input', () => {
17 expect(parse.symbol()).toEqual({})
18 expect(parse.symbol('a')).toEqual({})
19 expect(parse.symbol({ 'a': 5 })).toEqual({})
20 expect(parse.symbol(['a'])).toEqual({})
21})
22
23it('should parse an empty signbox', () => {
24 expect(parse.sign('đ ƒđ€†đ€†')).toEqual({
25 box: '𝠃',
26 max: [500, 500]
27 })
28})
29
30it('should parse a plain signbox', () => {
31 expect(parse.sign('đ ƒđ€Ÿđ€©ń‹›©đŁ”đ€ń€€’đ€‡đŁ€ń‹š„đ€đ€†ń€€šđŁźđŁ­')).toEqual({
32 box: '𝠃',
33 max: [525, 535],
34 spatials: [
35 {
36 symbol: 'ń‹›©',
37 coord: [483, 510]
38 },
39
40 {
41 symbol: '񀀒',
42 coord: [501, 466]
43 },
44
45 {
46 symbol: 'ń‹š„',
47 coord: [510, 500]
48 },
49
50 {
51 symbol: '񀀚',
52 coord: [476, 475]
53 }
54 ]
55 })
56})
57
58
59it('should parse a prefixed signbox', () => {
60 expect(parse.sign('𝠀ń€€’ń€€šń‹š„ń‹›©đ ƒđ€Ÿđ€©ń‹›©đŁ”đ€ń€€’đ€‡đŁ€ń‹š„đ€đ€†ń€€šđŁźđŁ­')).toEqual({
61 sequence: ['񀀒', '񀀚', '񋚄', '񋛩'],
62 box: '𝠃',
63 max: [525, 535],
64 spatials: [
65 {
66 symbol: 'ń‹›©',
67 coord: [483, 510]
68 },
69
70 {
71 symbol: '񀀒',
72 coord: [501, 466]
73 },
74
75 {
76 symbol: 'ń‹š„',
77 coord: [510, 500]
78 },
79
80 {
81 symbol: '񀀚',
82 coord: [476, 475]
83 }
84 ]
85 })
86})
87
88it('should parse a prefixed signbox with style', () => {
89 expect(parse.sign('𝠀ń€€’ń€€šń‹š„ń‹›©đ ƒđ€Ÿđ€©ń‹›©đŁ”đ€ń€€’đ€‡đŁ€ń‹š„đ€đ€†ń€€šđŁźđŁ­-C')).toEqual({
90 sequence: ['񀀒', '񀀚', '񋚄', '񋛩'],
91 box: '𝠃',
92 max: [525, 535],
93 spatials: [
94 {
95 symbol: 'ń‹›©',
96 coord: [483, 510]
97 },
98
99 {
100 symbol: '񀀒',
101 coord: [501, 466]
102 },
103
104 {
105 symbol: 'ń‹š„',
106 coord: [510, 500]
107 },
108
109 {
110 symbol: '񀀚',
111 coord: [476, 475]
112 }
113 ],
114 style: '-C'
115 })
116})
117
118it('should not break on invalid sign or input', () => {
119 expect(parse.sign()).toEqual({})
120 expect(parse.sign('a')).toEqual({})
121 expect(parse.sign({ 'a': 5 })).toEqual({})
122 expect(parse.sign(['a'])).toEqual({})
123})
124
125it('should parse a text', () => {
126 expect(parse.text('𝠀ńČĄńˆ©§đ ƒđ€˜đ€ŁńČĄđŁłđŁ©ńˆ©§đ€‰đŁ» 𝠀ńƒŠąńƒŠ«ń‹›•ń†‡Ąđ ƒđ€˜đ€§ńƒŠ«đŁ»đ€•ńƒŠąđŁŽđŁŒń†‡Ąđ€Žđ€‚ń‹›•đ€†đŁŠ ńŒđŁąđ€‚')).toEqual([
127 '𝠀ńČĄńˆ©§đ ƒđ€˜đ€ŁńČĄđŁłđŁ©ńˆ©§đ€‰đŁ»',
128 '𝠀ńƒŠąńƒŠ«ń‹›•ń†‡Ąđ ƒđ€˜đ€§ńƒŠ«đŁ»đ€•ńƒŠąđŁŽđŁŒń†‡Ąđ€Žđ€‚ń‹›•đ€†đŁŠ',
129 'ńŒđŁąđ€‚'
130 ])
131})
132
133it('should parse a text with style', () => {
134 expect(parse.text('𝠀ńČĄńˆ©§đ ƒđ€˜đ€ŁńČĄđŁłđŁ©ńˆ©§đ€‰đŁ»-C 𝠀ńƒŠąńƒŠ«ń‹›•ń†‡Ąđ ƒđ€˜đ€§ńƒŠ«đŁ»đ€•ńƒŠąđŁŽđŁŒń†‡Ąđ€Žđ€‚ń‹›•đ€†đŁŠ ńŒđŁąđ€‚-Z2')).toEqual([
135 '𝠀ńČĄńˆ©§đ ƒđ€˜đ€ŁńČĄđŁłđŁ©ńˆ©§đ€‰đŁ»-C',
136 '𝠀ńƒŠąńƒŠ«ń‹›•ń†‡Ąđ ƒđ€˜đ€§ńƒŠ«đŁ»đ€•ńƒŠąđŁŽđŁŒń†‡Ąđ€Žđ€‚ń‹›•đ€†đŁŠ',
137 'ńŒđŁąđ€‚-Z2'
138 ])
139})
140
141it('should not break on invalid text or input', () => {
142 expect(parse.text()).toEqual([])
143 expect(parse.text('a')).toEqual([])
144 expect(parse.text({ 'a': 5 })).toEqual([])
145 expect(parse.text(['a'])).toEqual([])
146})
147
148it('should encode swu characters', () => {
149 expect(encode('ń€€đ€†đ€†')).toBe('\\uD8C0\\uDC01\\uD836\\uDD06\\uD836\\uDD06');
150})
151
152it('should decode swu characters', () => {
153 expect(decode('\\uD8C0\\uDC01\\uD836\\uDD06\\uD836\\uDD06')).toBe('ń€€đ€†đ€†');
154})
155
156it('should return the utf-16 pair for a swu char', () => {
157 expect(pair('񀀁')).toEqual(['D8C0', 'DC01']);
158})