1 |
|
2 | import { encode, decode, pair, parse } from './swu-parse';
|
3 |
|
4 | it('should parse a symbol', () => {
|
5 | expect(parse.symbol('ņ')).toEqual({ symbol: 'ņ' })
|
6 | })
|
7 |
|
8 | it('should parse a symbol with coordinate', () => {
|
9 | expect(parse.symbol('ņðĪðĪ')).toEqual({ symbol: 'ņ', coord: [500, 500] })
|
10 | })
|
11 |
|
12 | it('should parse a symbol with style', () => {
|
13 | expect(parse.symbol('ņ-C')).toEqual({ symbol: 'ņ', style: '-C' })
|
14 | })
|
15 |
|
16 | it('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 |
|
23 | it('should parse an empty signbox', () => {
|
24 | expect(parse.sign('ð ðĪðĪ')).toEqual({
|
25 | box: 'ð ',
|
26 | max: [500, 500]
|
27 | })
|
28 | })
|
29 |
|
30 | it('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 |
|
59 | it('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 |
|
88 | it('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 |
|
118 | it('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 |
|
125 | it('should encode swu characters', () => {
|
126 | expect(encode('ņðĪðĪ')).toBe('\\uD8C0\\uDC01\\uD836\\uDD06\\uD836\\uDD06');
|
127 | })
|
128 |
|
129 | it('should decode swu characters', () => {
|
130 | expect(decode('\\uD8C0\\uDC01\\uD836\\uDD06\\uD836\\uDD06')).toBe('ņðĪðĪ');
|
131 | })
|
132 |
|
133 | it('should return the utf-16 pair for a swu char', () => {
|
134 | expect(pair('ņ')).toEqual(['D8C0', 'DC01']);
|
135 | })
|