UNPKG

25.3 kBPlain TextView Raw
1/* tslint:disable:no-implicit-dependencies no-any */
2/**
3 * SymbologySettings tests
4 */
5
6import test, { ExecutionContext } from "ava";
7import { SymbologySettings } from "..";
8
9function setsEqual<T>(t: ExecutionContext, firstSet: Set<T | string>, secondSet: Set<T | string>): void {
10 if (firstSet.size !== secondSet.size) {
11 return t.fail("Different set sizes");
12 }
13 for (const x of firstSet) {
14 if (!secondSet.has(x)) {
15 return t.fail("Different set contents");
16 }
17 }
18
19 return t.pass();
20}
21
22test("constructor", t => {
23 let ss: SymbologySettings = new SymbologySettings();
24 t.false((<any>ss).enabled);
25 t.false((<any>ss).colorInvertedEnabled);
26 t.deepEqual((<any>ss).activeSymbolCounts.length, 0);
27 t.deepEqual((<any>ss).extensions.size, 0);
28 t.deepEqual((<any>ss).checksums.size, 0);
29 ss = new SymbologySettings({});
30 t.false((<any>ss).enabled);
31 t.false((<any>ss).colorInvertedEnabled);
32 t.deepEqual((<any>ss).activeSymbolCounts.length, 0);
33 t.deepEqual((<any>ss).extensions.size, 0);
34 t.deepEqual((<any>ss).checksums.size, 0);
35 ss = new SymbologySettings({ enabled: true });
36 t.true((<any>ss).enabled);
37 ss = new SymbologySettings({ colorInvertedEnabled: true });
38 t.true((<any>ss).colorInvertedEnabled);
39 ss = new SymbologySettings({
40 activeSymbolCounts: [8, 9, 10]
41 });
42 t.deepEqual((<any>ss).activeSymbolCounts, [8, 9, 10]);
43 ss = new SymbologySettings({
44 extensions: new Set([SymbologySettings.Extension.FULL_ASCII])
45 });
46 setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
47 ss = new SymbologySettings({
48 extensions: [SymbologySettings.Extension.FULL_ASCII]
49 });
50 setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
51 ss = new SymbologySettings({
52 checksums: new Set([SymbologySettings.Checksum.MOD_10])
53 });
54 setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
55 ss = new SymbologySettings({
56 checksums: [SymbologySettings.Checksum.MOD_10]
57 });
58 setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
59});
60
61test("constructor (strings)", t => {
62 let ss: SymbologySettings = new SymbologySettings({
63 extensions: <Set<SymbologySettings.Extension>>new Set(["full_ascii"])
64 });
65 setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
66 ss = new SymbologySettings({
67 extensions: <SymbologySettings.Extension[]>["full_ascii"]
68 });
69 setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
70 ss = new SymbologySettings({
71 checksums: <Set<SymbologySettings.Checksum>>new Set(["mod10"])
72 });
73 setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
74 ss = new SymbologySettings({
75 checksums: <SymbologySettings.Checksum[]>["mod10"]
76 });
77 setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
78 ss = new SymbologySettings({
79 extensions: <Set<SymbologySettings.Extension>>(<unknown>new Set(["i_dont_exist"])),
80 checksums: <Set<SymbologySettings.Checksum>>(<unknown>new Set(["i_dont_exist"]))
81 });
82 t.deepEqual((<any>ss).extensions.size, 0);
83 t.deepEqual((<any>ss).checksums.size, 0);
84 ss = new SymbologySettings({
85 extensions: <SymbologySettings.Extension[]>(<unknown>Array.from(["i_dont_exist"])),
86 checksums: <SymbologySettings.Checksum[]>(<unknown>Array.from(["i_dont_exist"]))
87 });
88 t.deepEqual((<any>ss).extensions.size, 0);
89 t.deepEqual((<any>ss).checksums.size, 0);
90});
91
92test("isEnabled & setEnabled", t => {
93 const ss: SymbologySettings = new SymbologySettings();
94 t.false(ss.isEnabled());
95 ss.setEnabled(false);
96 t.false(ss.isEnabled());
97 ss.setEnabled(true);
98 t.true(ss.isEnabled());
99 ss.setEnabled(true);
100 t.true(ss.isEnabled());
101 ss.setEnabled(false);
102 t.false(ss.isEnabled());
103});
104
105test("isColorInvertedEnabled & setColorInvertedEnabled", t => {
106 const ss: SymbologySettings = new SymbologySettings();
107 t.false(ss.isColorInvertedEnabled());
108 ss.setColorInvertedEnabled(false);
109 t.false(ss.isColorInvertedEnabled());
110 ss.setColorInvertedEnabled(true);
111 t.true(ss.isColorInvertedEnabled());
112 ss.setColorInvertedEnabled(true);
113 t.true(ss.isColorInvertedEnabled());
114 ss.setColorInvertedEnabled(false);
115 t.false(ss.isColorInvertedEnabled());
116});
117
118test("getActiveSymbolCounts & setActiveSymbolCounts", t => {
119 const ss: SymbologySettings = new SymbologySettings();
120 t.deepEqual(ss.getActiveSymbolCounts(), []);
121 ss.setActiveSymbolCounts([]);
122 t.deepEqual(ss.getActiveSymbolCounts(), []);
123 ss.setActiveSymbolCounts([1]);
124 t.deepEqual(ss.getActiveSymbolCounts(), [1]);
125 ss.setActiveSymbolCounts([1, 2, 3]);
126 t.deepEqual(ss.getActiveSymbolCounts(), [1, 2, 3]);
127});
128
129test("setActiveSymbolCountsRange", t => {
130 const ss: SymbologySettings = new SymbologySettings();
131 ss.setActiveSymbolCountsRange(1, 2);
132 t.deepEqual(ss.getActiveSymbolCounts(), [1, 2]);
133 ss.setActiveSymbolCountsRange(1, 3);
134 t.deepEqual(ss.getActiveSymbolCounts(), [1, 2, 3]);
135 ss.setActiveSymbolCountsRange(10, 16);
136 t.deepEqual(ss.getActiveSymbolCounts(), [10, 11, 12, 13, 14, 15, 16]);
137 ss.setActiveSymbolCountsRange(1, 1);
138 t.deepEqual(ss.getActiveSymbolCounts(), [1]);
139 ss.setActiveSymbolCountsRange(1, 0);
140 t.deepEqual(ss.getActiveSymbolCounts(), []);
141});
142
143test("getEnabledExtensions & enableExtensions & disableExtensions", t => {
144 const ss: SymbologySettings = new SymbologySettings();
145 ss.disableExtensions(SymbologySettings.Extension.FULL_ASCII);
146 setsEqual(t, ss.getEnabledExtensions(), new Set());
147 ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII]);
148 setsEqual(t, ss.getEnabledExtensions(), new Set());
149 ss.disableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
150 setsEqual(t, ss.getEnabledExtensions(), new Set());
151
152 // Set
153 ss.enableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
154 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
155 ss.enableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
156 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
157 ss.enableExtensions(new Set([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]));
158 setsEqual(
159 t,
160 ss.getEnabledExtensions(),
161 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
162 );
163 ss.disableExtensions(new Set([SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK]));
164 setsEqual(
165 t,
166 ss.getEnabledExtensions(),
167 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
168 );
169 ss.disableExtensions(new Set([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]));
170 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
171 ss.disableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
172 setsEqual(t, ss.getEnabledExtensions(), new Set());
173 ss.enableExtensions(
174 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
175 );
176 setsEqual(
177 t,
178 ss.getEnabledExtensions(),
179 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
180 );
181 ss.disableExtensions(
182 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
183 );
184 setsEqual(t, ss.getEnabledExtensions(), new Set());
185
186 // Array
187 ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
188 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
189 ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
190 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
191 ss.enableExtensions([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
192 setsEqual(
193 t,
194 ss.getEnabledExtensions(),
195 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
196 );
197 ss.disableExtensions([SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK]);
198 setsEqual(
199 t,
200 ss.getEnabledExtensions(),
201 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
202 );
203 ss.disableExtensions([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
204 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
205 ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII]);
206 setsEqual(t, ss.getEnabledExtensions(), new Set());
207 ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
208 setsEqual(
209 t,
210 ss.getEnabledExtensions(),
211 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
212 );
213 ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
214 setsEqual(t, ss.getEnabledExtensions(), new Set());
215
216 // Single
217 ss.enableExtensions(SymbologySettings.Extension.FULL_ASCII);
218 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
219 ss.enableExtensions(SymbologySettings.Extension.FULL_ASCII);
220 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
221 ss.enableExtensions(SymbologySettings.Extension.DIRECT_PART_MARKING_MODE);
222 setsEqual(
223 t,
224 ss.getEnabledExtensions(),
225 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
226 );
227 ss.disableExtensions(SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK);
228 setsEqual(
229 t,
230 ss.getEnabledExtensions(),
231 new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
232 );
233 ss.disableExtensions(SymbologySettings.Extension.DIRECT_PART_MARKING_MODE);
234 setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
235 ss.disableExtensions(SymbologySettings.Extension.FULL_ASCII);
236 setsEqual(t, ss.getEnabledExtensions(), new Set());
237});
238
239test("getEnabledExtensions & enableExtensions & disableExtensions (strings)", t => {
240 const ss: SymbologySettings = new SymbologySettings();
241 ss.disableExtensions(<SymbologySettings.Extension>"full_ascii");
242 setsEqual(t, ss.getEnabledExtensions(), new Set());
243 ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
244 setsEqual(t, ss.getEnabledExtensions(), new Set());
245 ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
246 setsEqual(t, ss.getEnabledExtensions(), new Set());
247
248 ss.enableExtensions(<SymbologySettings.Extension>(<unknown>"i_dont_exist"));
249 setsEqual(t, ss.getEnabledExtensions(), new Set());
250 ss.enableExtensions(<SymbologySettings.Extension[]>(<unknown>Array.from(["i_dont_exist"])));
251 setsEqual(t, ss.getEnabledExtensions(), new Set());
252 ss.enableExtensions(<Set<SymbologySettings.Extension>>(<unknown>new Set(["i_dont_exist"])));
253 setsEqual(t, ss.getEnabledExtensions(), new Set());
254
255 // Set
256 ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
257 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
258 ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
259 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
260 ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["direct_part_marking_mode"]));
261 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
262 ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["relaxed_sharp_quiet_zone_check"]));
263 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
264 ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["direct_part_marking_mode"]));
265 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
266 ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
267 setsEqual(t, ss.getEnabledExtensions(), new Set());
268 ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii", "direct_part_marking_mode"]));
269 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
270 ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii", "direct_part_marking_mode"]));
271 setsEqual(t, ss.getEnabledExtensions(), new Set());
272
273 // Array
274 ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
275 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
276 ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
277 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
278 ss.enableExtensions(<SymbologySettings.Extension[]>["direct_part_marking_mode"]);
279 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
280 ss.disableExtensions(<SymbologySettings.Extension[]>["relaxed_sharp_quiet_zone_check"]);
281 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
282 ss.disableExtensions(<SymbologySettings.Extension[]>["direct_part_marking_mode"]);
283 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
284 ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
285 setsEqual(t, ss.getEnabledExtensions(), new Set());
286 ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii", "direct_part_marking_mode"]);
287 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
288 ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii", "direct_part_marking_mode"]);
289 setsEqual(t, ss.getEnabledExtensions(), new Set());
290
291 // Single
292 ss.enableExtensions(<SymbologySettings.Extension>"full_ascii");
293 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
294 ss.enableExtensions(<SymbologySettings.Extension>"full_ascii");
295 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
296 ss.enableExtensions(<SymbologySettings.Extension>"direct_part_marking_mode");
297 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
298 ss.disableExtensions(<SymbologySettings.Extension>"relaxed_sharp_quiet_zone_check");
299 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
300 ss.disableExtensions(<SymbologySettings.Extension>"direct_part_marking_mode");
301 setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
302 ss.disableExtensions(<SymbologySettings.Extension>"full_ascii");
303 setsEqual(t, ss.getEnabledExtensions(), new Set());
304});
305
306test("getEnabledChecksums & enableChecksums & disableChecksums", t => {
307 const ss: SymbologySettings = new SymbologySettings();
308 ss.disableChecksums(SymbologySettings.Checksum.MOD_10);
309 setsEqual(t, ss.getEnabledChecksums(), new Set());
310 ss.disableChecksums([SymbologySettings.Checksum.MOD_10]);
311 setsEqual(t, ss.getEnabledChecksums(), new Set());
312 ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
313 setsEqual(t, ss.getEnabledChecksums(), new Set());
314
315 // Set
316 ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
317 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
318 ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
319 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
320 ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_43]));
321 setsEqual(
322 t,
323 ss.getEnabledChecksums(),
324 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
325 );
326 ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_16]));
327 setsEqual(
328 t,
329 ss.getEnabledChecksums(),
330 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
331 );
332 ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_43]));
333 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
334 ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
335 setsEqual(t, ss.getEnabledChecksums(), new Set());
336 ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]));
337 setsEqual(
338 t,
339 ss.getEnabledChecksums(),
340 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
341 );
342 ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]));
343 setsEqual(t, ss.getEnabledChecksums(), new Set());
344
345 // Array
346 ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
347 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
348 ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
349 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
350 ss.enableChecksums([SymbologySettings.Checksum.MOD_43]);
351 setsEqual(
352 t,
353 ss.getEnabledChecksums(),
354 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
355 );
356 ss.disableChecksums([SymbologySettings.Checksum.MOD_16]);
357 setsEqual(
358 t,
359 ss.getEnabledChecksums(),
360 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
361 );
362 ss.disableChecksums([SymbologySettings.Checksum.MOD_43]);
363 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
364 ss.disableChecksums([SymbologySettings.Checksum.MOD_10]);
365 setsEqual(t, ss.getEnabledChecksums(), new Set());
366 ss.enableChecksums([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]);
367 setsEqual(
368 t,
369 ss.getEnabledChecksums(),
370 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
371 );
372 ss.disableChecksums([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]);
373 setsEqual(t, ss.getEnabledChecksums(), new Set());
374
375 // Single
376 ss.enableChecksums(SymbologySettings.Checksum.MOD_10);
377 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
378 ss.enableChecksums(SymbologySettings.Checksum.MOD_10);
379 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
380 ss.enableChecksums(SymbologySettings.Checksum.MOD_43);
381 setsEqual(
382 t,
383 ss.getEnabledChecksums(),
384 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
385 );
386 ss.disableChecksums(SymbologySettings.Checksum.MOD_16);
387 setsEqual(
388 t,
389 ss.getEnabledChecksums(),
390 new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
391 );
392 ss.disableChecksums(SymbologySettings.Checksum.MOD_43);
393 setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
394 ss.disableChecksums(SymbologySettings.Checksum.MOD_10);
395 setsEqual(t, ss.getEnabledChecksums(), new Set());
396});
397
398test("getEnabledChecksums & enableChecksums & disableChecksums (strings)", t => {
399 const ss: SymbologySettings = new SymbologySettings();
400 ss.disableChecksums(<SymbologySettings.Checksum>"mod10");
401 setsEqual(t, ss.getEnabledChecksums(), new Set());
402 ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
403 setsEqual(t, ss.getEnabledChecksums(), new Set());
404 ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
405 setsEqual(t, ss.getEnabledChecksums(), new Set());
406
407 ss.enableChecksums(<SymbologySettings.Checksum>(<unknown>"i_dont_exist"));
408 setsEqual(t, ss.getEnabledChecksums(), new Set());
409 ss.enableChecksums(<SymbologySettings.Checksum[]>(<unknown>Array.from(["i_dont_exist"])));
410 setsEqual(t, ss.getEnabledChecksums(), new Set());
411 ss.enableChecksums(<Set<SymbologySettings.Checksum>>(<unknown>new Set(["i_dont_exist"])));
412 setsEqual(t, ss.getEnabledChecksums(), new Set());
413
414 // Set
415 ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
416 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
417 ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
418 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
419 ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod43"]));
420 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
421 ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod16"]));
422 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
423 ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod43"]));
424 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
425 ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
426 setsEqual(t, ss.getEnabledChecksums(), new Set());
427 ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10", "mod43"]));
428 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
429 ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10", "mod43"]));
430 setsEqual(t, ss.getEnabledChecksums(), new Set());
431
432 // Array
433 ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
434 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
435 ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
436 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
437 ss.enableChecksums(<SymbologySettings.Checksum[]>["mod43"]);
438 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
439 ss.disableChecksums(<SymbologySettings.Checksum[]>["mod16"]);
440 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
441 ss.disableChecksums(<SymbologySettings.Checksum[]>["mod43"]);
442 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
443 ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
444 setsEqual(t, ss.getEnabledChecksums(), new Set());
445 ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10", "mod43"]);
446 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
447 ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10", "mod43"]);
448 setsEqual(t, ss.getEnabledChecksums(), new Set());
449
450 // Single
451 ss.enableChecksums(<SymbologySettings.Checksum>"mod10");
452 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
453 ss.enableChecksums(<SymbologySettings.Checksum>"mod10");
454 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
455 ss.enableChecksums(<SymbologySettings.Checksum>"mod43");
456 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
457 ss.disableChecksums(<SymbologySettings.Checksum>"mod16");
458 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
459 ss.disableChecksums(<SymbologySettings.Checksum>"mod43");
460 setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
461 ss.disableChecksums(<SymbologySettings.Checksum>"mod10");
462 setsEqual(t, ss.getEnabledChecksums(), new Set());
463});
464
465test("toJSON", t => {
466 let ss: SymbologySettings = new SymbologySettings();
467 t.deepEqual(
468 JSON.stringify(ss),
469 JSON.stringify({
470 enabled: false,
471 colorInvertedEnabled: false
472 })
473 );
474 ss = new SymbologySettings({});
475 t.deepEqual(
476 JSON.stringify(ss),
477 JSON.stringify({
478 enabled: false,
479 colorInvertedEnabled: false
480 })
481 );
482 ss = new SymbologySettings({ enabled: true });
483 t.deepEqual(
484 JSON.stringify(ss),
485 JSON.stringify({
486 enabled: true,
487 colorInvertedEnabled: false
488 })
489 );
490 ss = new SymbologySettings({ colorInvertedEnabled: true });
491 t.deepEqual(
492 JSON.stringify(ss),
493 JSON.stringify({
494 enabled: false,
495 colorInvertedEnabled: true
496 })
497 );
498 ss = new SymbologySettings({ enabled: true, colorInvertedEnabled: true });
499 t.deepEqual(
500 JSON.stringify(ss),
501 JSON.stringify({
502 enabled: true,
503 colorInvertedEnabled: true
504 })
505 );
506 ss = new SymbologySettings({
507 enabled: true,
508 colorInvertedEnabled: true,
509 activeSymbolCounts: [8, 9, 10]
510 });
511 t.deepEqual(
512 JSON.stringify(ss),
513 JSON.stringify({
514 enabled: true,
515 colorInvertedEnabled: true,
516 activeSymbolCounts: [8, 9, 10]
517 })
518 );
519 ss = new SymbologySettings({
520 enabled: true,
521 colorInvertedEnabled: true,
522 activeSymbolCounts: [8, 9, 10],
523 extensions: new Set([SymbologySettings.Extension.FULL_ASCII])
524 });
525 t.deepEqual(
526 JSON.stringify(ss),
527 JSON.stringify({
528 enabled: true,
529 colorInvertedEnabled: true,
530 activeSymbolCounts: [8, 9, 10],
531 extensions: [SymbologySettings.Extension.FULL_ASCII]
532 })
533 );
534 ss = new SymbologySettings({
535 enabled: true,
536 colorInvertedEnabled: true,
537 activeSymbolCounts: [8, 9, 10],
538 extensions: new Set([SymbologySettings.Extension.FULL_ASCII]),
539 checksums: new Set([SymbologySettings.Checksum.MOD_10])
540 });
541 t.deepEqual(
542 JSON.stringify(ss),
543 JSON.stringify({
544 enabled: true,
545 colorInvertedEnabled: true,
546 activeSymbolCounts: [8, 9, 10],
547 extensions: [SymbologySettings.Extension.FULL_ASCII],
548 checksums: [SymbologySettings.Checksum.MOD_10]
549 })
550 );
551 ss = new SymbologySettings();
552 ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
553 ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
554 t.deepEqual(
555 JSON.stringify(ss),
556 JSON.stringify({
557 enabled: false,
558 colorInvertedEnabled: false,
559 extensions: [SymbologySettings.Extension.FULL_ASCII],
560 checksums: [SymbologySettings.Checksum.MOD_10]
561 })
562 );
563});