UNPKG

3.79 kBJavaScriptView Raw
1
2import { compose } from './fsw-compose';
3
4it('should compose a symbol', () => {
5 expect(compose.symbol({ symbol: 'S10000' })).toEqual('S10000')
6})
7
8it('should compose a symbol with coordinate', () => {
9 expect(compose.symbol({ symbol: 'S10000', coord: [500, 500] })).toEqual('S10000500x500')
10 expect(compose.symbol({ symbol: 'S10000', coord: ["500", "500"] })).toEqual('S10000500x500')
11})
12
13it('should compose a symbol with style', () => {
14 expect(compose.symbol({ symbol: 'S10000', style: '-C' })).toEqual('S10000-C')
15})
16
17it('should not break on invalid symbol key or bad input', () => {
18 expect(compose.symbol({})).toEqual(undefined)
19 expect(compose.symbol({ symbol: "xxx" })).toEqual(undefined)
20 expect(compose.symbol({ symbol: "S10000", style: "asdf" })).toEqual('S10000')
21 expect(compose.symbol({ symbol: "S10000", style: { style: false } })).toEqual('S10000')
22 expect(compose.symbol({ symbol: "S10000", coord: "500x500", style: "-CW" })).toEqual('S10000-C')
23 expect(compose.symbol({ symbol: "S10000", coord: [0, 0], style: "-CW" })).toEqual('S10000-C')
24 expect(compose.symbol({ symbol: "S10000", coord: { x: 0, y: 0 }, style: "-CW" })).toEqual('S10000-C')
25 expect(compose.symbol({ symbol: "S10000", coord: [{ x: 0 }, { y: 0 }], style: "-CW" })).toEqual('S10000-C')
26 expect(compose.symbol({ symbol: "S10000", coord: [500], style: "-CW" })).toEqual('S10000-C')
27 expect(compose.symbol('a')).toEqual(undefined)
28 expect(compose.symbol({ 'a': 5 })).toEqual(undefined)
29 expect(compose.symbol(['a'])).toEqual(undefined)
30})
31
32it('should compose an empty signbox', () => {
33 expect(compose.sign({
34 box: 'M',
35 max: [500, 500]
36 })).toEqual('M500x500')
37})
38
39it('should compose a plain signbox', () => {
40 expect(compose.sign({
41 box: 'M',
42 max: [525, 535],
43 spatials: [
44 {
45 symbol: 'S2e748',
46 coord: [483, 510]
47 },
48
49 {
50 symbol: 'S10011',
51 coord: [501, 466]
52 },
53
54 {
55 symbol: 'S2e704',
56 coord: [510, 500]
57 },
58
59 {
60 symbol: 'S10019',
61 coord: [476, 475]
62 }
63 ]
64 })).toEqual('M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475')
65})
66
67it('should compose a prefixed signbox', () => {
68 expect(compose.sign({
69 sequence: ['S10011', 'S10019', 'S2e704', 'S2e748'],
70 box: 'M',
71 max: [525, 535],
72 spatials: [
73 {
74 symbol: 'S2e748',
75 coord: [483, 510]
76 },
77
78 {
79 symbol: 'S10011',
80 coord: [501, 466]
81 },
82
83 {
84 symbol: 'S2e704',
85 coord: [510, 500]
86 },
87
88 {
89 symbol: 'S10019',
90 coord: [476, 475]
91 }
92 ]
93 })).toEqual('AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475')
94})
95
96it('should compose a prefixed signbox with style', () => {
97 expect(compose.sign({
98 sequence: ['S10011', 'S10019', 'S2e704', 'S2e748'],
99 box: 'M',
100 max: [525, 535],
101 spatials: [
102 {
103 symbol: 'S2e748',
104 coord: [483, 510]
105 },
106 {
107 symbol: 'S10011',
108 coord: [501, 466]
109 },
110 {
111 symbol: 'S2e704',
112 coord: [510, 500]
113 },
114 {
115 symbol: 'S10019',
116 coord: [476, 475]
117 }
118 ],
119 style: '-C'
120 })).toEqual('AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475-C')
121})
122
123it('should not break on invalid sign or input', () => {
124 expect(compose.sign({ box: ['M'], coord: '500x500' })).toEqual(undefined)
125 expect(compose.sign({})).toEqual(undefined)
126 expect(compose.sign('a')).toEqual(undefined)
127 expect(compose.sign({ 'a': 5 })).toEqual(undefined)
128 expect(compose.sign(['a'])).toEqual(undefined)
129})