1 |
|
2 |
|
3 |
|
4 |
|
5 | import test from "ava";
|
6 | import { Barcode, ScanSettings, SearchArea, SymbologySettings } from "..";
|
7 |
|
8 | const baseJSONScanSettings: {
|
9 | symbologies: {};
|
10 | codeDuplicateFilter: number;
|
11 | maxNumberOfCodesPerFrame: number;
|
12 | searchArea: SearchArea;
|
13 | gpuAcceleration: boolean;
|
14 | blurryRecognition: boolean;
|
15 | properties: {};
|
16 | } = {
|
17 | symbologies: {},
|
18 | codeDuplicateFilter: 0,
|
19 | maxNumberOfCodesPerFrame: 1,
|
20 | searchArea: new ScanSettings().getSearchArea(),
|
21 | gpuAcceleration: true,
|
22 | blurryRecognition: true,
|
23 | properties: {}
|
24 | };
|
25 |
|
26 | test("constructor", t => {
|
27 | let ss: ScanSettings = new ScanSettings();
|
28 | t.deepEqual((<any>ss).symbologySettings, new Map());
|
29 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
30 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
31 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
32 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
33 | t.deepEqual((<any>ss).blurryRecognition, true);
|
34 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
35 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
36 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
37 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
38 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
39 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
40 | t.deepEqual((<any>ss).blurryRecognition, true);
|
41 | ss = new ScanSettings({ enabledSymbologies: [Barcode.Symbology.QR] });
|
42 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
43 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
44 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
45 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
46 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
47 | t.deepEqual((<any>ss).blurryRecognition, true);
|
48 | ss = new ScanSettings({ enabledSymbologies: new Set([Barcode.Symbology.QR]) });
|
49 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
50 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
51 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
52 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
53 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
54 | t.deepEqual((<any>ss).blurryRecognition, true);
|
55 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR, codeDuplicateFilter: 10 });
|
56 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
57 | t.deepEqual((<any>ss).codeDuplicateFilter, 10);
|
58 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
59 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
60 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
61 | t.deepEqual((<any>ss).blurryRecognition, true);
|
62 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR, maxNumberOfCodesPerFrame: 10 });
|
63 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
64 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
65 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 10);
|
66 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
67 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
68 | t.deepEqual((<any>ss).blurryRecognition, true);
|
69 | ss = new ScanSettings({
|
70 | enabledSymbologies: Barcode.Symbology.QR,
|
71 | codeDuplicateFilter: 10,
|
72 | maxNumberOfCodesPerFrame: 10
|
73 | });
|
74 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
75 | t.deepEqual((<any>ss).codeDuplicateFilter, 10);
|
76 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 10);
|
77 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
78 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
79 | t.deepEqual((<any>ss).blurryRecognition, true);
|
80 | ss = new ScanSettings({
|
81 | enabledSymbologies: Barcode.Symbology.QR,
|
82 | codeDuplicateFilter: 10,
|
83 | maxNumberOfCodesPerFrame: 10,
|
84 | searchArea: { x: 0.5, y: 0.5, width: 0.5, height: 0.1 }
|
85 | });
|
86 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
87 | t.deepEqual((<any>ss).codeDuplicateFilter, 10);
|
88 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 10);
|
89 | t.deepEqual(ss.getSearchArea(), { height: 0.1, width: 0.5, x: 0.5, y: 0.5 });
|
90 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
91 | t.deepEqual((<any>ss).blurryRecognition, true);
|
92 | ss = new ScanSettings({
|
93 | enabledSymbologies: Barcode.Symbology.QR,
|
94 | codeDuplicateFilter: 10,
|
95 | maxNumberOfCodesPerFrame: 10,
|
96 | searchArea: { x: 0.5, y: 0.5, width: 0.5, height: 0.1 },
|
97 | gpuAcceleration: false
|
98 | });
|
99 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
100 | t.deepEqual((<any>ss).codeDuplicateFilter, 10);
|
101 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 10);
|
102 | t.deepEqual(ss.getSearchArea(), { height: 0.1, width: 0.5, x: 0.5, y: 0.5 });
|
103 | t.deepEqual((<any>ss).gpuAcceleration, false);
|
104 | t.deepEqual((<any>ss).blurryRecognition, true);
|
105 | ss = new ScanSettings({
|
106 | enabledSymbologies: Barcode.Symbology.QR,
|
107 | codeDuplicateFilter: 10,
|
108 | maxNumberOfCodesPerFrame: 10,
|
109 | searchArea: { x: 0.5, y: 0.5, width: 0.5, height: 0.1 },
|
110 | gpuAcceleration: false,
|
111 | blurryRecognition: false
|
112 | });
|
113 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
114 | t.deepEqual((<any>ss).codeDuplicateFilter, 10);
|
115 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 10);
|
116 | t.deepEqual(ss.getSearchArea(), { height: 0.1, width: 0.5, x: 0.5, y: 0.5 });
|
117 | t.deepEqual((<any>ss).gpuAcceleration, false);
|
118 | t.deepEqual((<any>ss).blurryRecognition, false);
|
119 | });
|
120 |
|
121 | test("constructor (strings)", t => {
|
122 | let ss: ScanSettings = new ScanSettings();
|
123 | t.deepEqual((<any>ss).symbologySettings, new Map());
|
124 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
125 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
126 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
127 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
128 | t.deepEqual((<any>ss).blurryRecognition, true);
|
129 | ss = new ScanSettings({ enabledSymbologies: <Barcode.Symbology>"qr" });
|
130 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
131 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
132 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
133 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
134 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
135 | t.deepEqual((<any>ss).blurryRecognition, true);
|
136 | ss = new ScanSettings({ enabledSymbologies: <Barcode.Symbology[]>["qr"] });
|
137 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
138 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
139 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
140 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
141 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
142 | t.deepEqual((<any>ss).blurryRecognition, true);
|
143 | ss = new ScanSettings({ enabledSymbologies: <Set<Barcode.Symbology>>new Set(["qr"]) });
|
144 | t.deepEqual((<any>ss).symbologySettings, new Map([[Barcode.Symbology.QR, new SymbologySettings({ enabled: true })]]));
|
145 | t.deepEqual((<any>ss).codeDuplicateFilter, 0);
|
146 | t.deepEqual((<any>ss).maxNumberOfCodesPerFrame, 1);
|
147 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
148 | t.deepEqual((<any>ss).gpuAcceleration, true);
|
149 | t.deepEqual((<any>ss).blurryRecognition, true);
|
150 |
|
151 | t.throws(
|
152 | () => {
|
153 | return new ScanSettings({ enabledSymbologies: <Barcode.Symbology>(<unknown>"i_dont_exist") });
|
154 | },
|
155 | TypeError,
|
156 | "i_dont_exist"
|
157 | );
|
158 | t.throws(
|
159 | () => {
|
160 | return new ScanSettings({ enabledSymbologies: <Barcode.Symbology[]>(<unknown>Array.from(["i_dont_exist"])) });
|
161 | },
|
162 | TypeError,
|
163 | "i_dont_exist"
|
164 | );
|
165 | t.throws(
|
166 | () => {
|
167 | return new ScanSettings({ enabledSymbologies: <Set<Barcode.Symbology>>(<unknown>new Set(["i_dont_exist"])) });
|
168 | },
|
169 | TypeError,
|
170 | "i_dont_exist"
|
171 | );
|
172 | });
|
173 |
|
174 | test("getSymbologySettings", t => {
|
175 | let ss: ScanSettings = new ScanSettings();
|
176 | t.deepEqual(ss.getSymbologySettings(Barcode.Symbology.QR), new SymbologySettings());
|
177 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
178 | t.deepEqual(ss.getSymbologySettings(Barcode.Symbology.QR), new SymbologySettings({ enabled: true }));
|
179 | ss = new ScanSettings();
|
180 | ss.getSymbologySettings(Barcode.Symbology.QR).setColorInvertedEnabled(true);
|
181 | t.deepEqual(ss.getSymbologySettings(Barcode.Symbology.QR), new SymbologySettings({ colorInvertedEnabled: true }));
|
182 | });
|
183 |
|
184 | test("getSymbologySettings (strings)", t => {
|
185 | let ss: ScanSettings = new ScanSettings();
|
186 | t.throws(
|
187 | () => {
|
188 | ss.getSymbologySettings(<Barcode.Symbology>"i_dont_exist");
|
189 | },
|
190 | TypeError,
|
191 | "i_dont_exist"
|
192 | );
|
193 | t.deepEqual(ss.getSymbologySettings(<Barcode.Symbology>"qr"), new SymbologySettings());
|
194 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
195 | t.deepEqual(ss.getSymbologySettings(<Barcode.Symbology>"qr"), new SymbologySettings({ enabled: true }));
|
196 | ss = new ScanSettings();
|
197 | ss.getSymbologySettings(Barcode.Symbology.QR).setColorInvertedEnabled(true);
|
198 | t.deepEqual(ss.getSymbologySettings(<Barcode.Symbology>"qr"), new SymbologySettings({ colorInvertedEnabled: true }));
|
199 | });
|
200 |
|
201 | test("isSymbologyEnabled & enableSymbologies & disableSymbologies", t => {
|
202 | let ss: ScanSettings = new ScanSettings();
|
203 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
204 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
205 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
206 |
|
207 |
|
208 | ss = new ScanSettings();
|
209 | ss.enableSymbologies(new Set([Barcode.Symbology.QR]));
|
210 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
211 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
212 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
213 | ss.enableSymbologies(new Set([Barcode.Symbology.CODE128, Barcode.Symbology.EAN13]));
|
214 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
215 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
216 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
217 | ss.disableSymbologies(new Set([Barcode.Symbology.QR]));
|
218 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
219 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
220 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
221 | ss.disableSymbologies(new Set([Barcode.Symbology.CODE128, Barcode.Symbology.EAN13]));
|
222 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
223 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
224 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
225 |
|
226 |
|
227 | ss = new ScanSettings();
|
228 | ss.enableSymbologies([Barcode.Symbology.QR]);
|
229 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
230 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
231 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
232 | ss.enableSymbologies([Barcode.Symbology.CODE128, Barcode.Symbology.EAN13]);
|
233 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
234 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
235 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
236 | ss.disableSymbologies([Barcode.Symbology.QR]);
|
237 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
238 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
239 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
240 | ss.disableSymbologies([Barcode.Symbology.CODE128, Barcode.Symbology.EAN13]);
|
241 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
242 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
243 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
244 |
|
245 |
|
246 | ss = new ScanSettings();
|
247 | ss.enableSymbologies(Barcode.Symbology.QR);
|
248 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
249 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
250 | ss.enableSymbologies(Barcode.Symbology.CODE128);
|
251 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
252 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
253 | ss.disableSymbologies(Barcode.Symbology.QR);
|
254 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
255 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
256 | ss.disableSymbologies(Barcode.Symbology.CODE128);
|
257 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
258 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
259 | });
|
260 |
|
261 | test("isSymbologyEnabled & enableSymbologies & disableSymbologies (strings)", t => {
|
262 | let ss: ScanSettings = new ScanSettings();
|
263 | t.false(ss.isSymbologyEnabled(<Barcode.Symbology>"qr"));
|
264 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
265 | t.true(ss.isSymbologyEnabled(<Barcode.Symbology>"qr"));
|
266 |
|
267 | ss = new ScanSettings();
|
268 | t.throws(
|
269 | () => {
|
270 | ss.enableSymbologies(<Barcode.Symbology>"i_dont_exist");
|
271 | },
|
272 | TypeError,
|
273 | "i_dont_exist"
|
274 | );
|
275 | t.deepEqual((<any>ss).symbologySettings, new Map());
|
276 | t.throws(
|
277 | () => {
|
278 | ss.enableSymbologies(<Barcode.Symbology[]>(<unknown>Array.from(["i_dont_exist"])));
|
279 | },
|
280 | TypeError,
|
281 | "i_dont_exist"
|
282 | );
|
283 | t.deepEqual((<any>ss).symbologySettings, new Map());
|
284 | t.throws(
|
285 | () => {
|
286 | ss.enableSymbologies(<Set<Barcode.Symbology>>(<unknown>new Set(["i_dont_exist"])));
|
287 | },
|
288 | TypeError,
|
289 | "i_dont_exist"
|
290 | );
|
291 | t.deepEqual((<any>ss).symbologySettings, new Map());
|
292 |
|
293 |
|
294 | ss = new ScanSettings();
|
295 | ss.enableSymbologies(<Set<Barcode.Symbology>>new Set(["qr"]));
|
296 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
297 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
298 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
299 | ss.enableSymbologies(<Set<Barcode.Symbology>>new Set(["code128", "ean13"]));
|
300 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
301 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
302 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
303 | ss.disableSymbologies(<Set<Barcode.Symbology>>new Set(["qr"]));
|
304 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
305 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
306 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
307 | ss.disableSymbologies(<Set<Barcode.Symbology>>new Set(["code128", "ean13"]));
|
308 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
309 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
310 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
311 |
|
312 |
|
313 | ss = new ScanSettings();
|
314 | ss.enableSymbologies(<Barcode.Symbology[]>["qr"]);
|
315 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
316 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
317 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
318 | ss.enableSymbologies(<Barcode.Symbology[]>["code128", "ean13"]);
|
319 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
320 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
321 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
322 | ss.disableSymbologies(<Barcode.Symbology[]>["qr"]);
|
323 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
324 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
325 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
326 | ss.disableSymbologies(<Barcode.Symbology[]>["code128", "ean13"]);
|
327 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
328 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.EAN13));
|
329 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
330 |
|
331 |
|
332 | ss = new ScanSettings();
|
333 | ss.enableSymbologies(<Barcode.Symbology>"qr");
|
334 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
335 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
336 | ss.enableSymbologies(<Barcode.Symbology>"code128");
|
337 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
338 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
339 | ss.disableSymbologies(<Barcode.Symbology>"qr");
|
340 | t.true(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
341 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
342 | ss.disableSymbologies(<Barcode.Symbology>"code128");
|
343 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.CODE128));
|
344 | t.false(ss.isSymbologyEnabled(Barcode.Symbology.QR));
|
345 | });
|
346 |
|
347 | test("getCodeDuplicateFilter & setCodeDuplicateFilter", t => {
|
348 | const ss: ScanSettings = new ScanSettings();
|
349 | t.deepEqual(ss.getCodeDuplicateFilter(), 0);
|
350 | ss.setCodeDuplicateFilter(100);
|
351 | t.deepEqual(ss.getCodeDuplicateFilter(), 100);
|
352 | });
|
353 |
|
354 | test("getMaxNumberOfCodesPerFrame & setMaxNumberOfCodesPerFrame", t => {
|
355 | const ss: ScanSettings = new ScanSettings();
|
356 | t.deepEqual(ss.getMaxNumberOfCodesPerFrame(), 1);
|
357 | ss.setMaxNumberOfCodesPerFrame(10);
|
358 | t.deepEqual(ss.getMaxNumberOfCodesPerFrame(), 10);
|
359 | });
|
360 |
|
361 | test("getSearchArea & setSearchArea", t => {
|
362 | const ss: ScanSettings = new ScanSettings();
|
363 | t.deepEqual(ss.getSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
364 | ss.setSearchArea({ x: 0.5, y: 0.5, width: 0.5, height: 0.1 });
|
365 | t.deepEqual(ss.getSearchArea(), { height: 0.1, width: 0.5, x: 0.5, y: 0.5 });
|
366 | });
|
367 |
|
368 | test("isGpuAccelerationEnabled & setGpuAccelerationEnabled", t => {
|
369 | const ss: ScanSettings = new ScanSettings();
|
370 | t.deepEqual(ss.isGpuAccelerationEnabled(), true);
|
371 | ss.setGpuAccelerationEnabled(false);
|
372 | t.deepEqual(ss.isGpuAccelerationEnabled(), false);
|
373 | ss.setGpuAccelerationEnabled(true);
|
374 | t.deepEqual(ss.isGpuAccelerationEnabled(), true);
|
375 | });
|
376 |
|
377 | test("isBlurryRecognitionEnabled & setBlurryRecognitionEnabled", t => {
|
378 | const ss: ScanSettings = new ScanSettings();
|
379 | t.deepEqual(ss.isBlurryRecognitionEnabled(), true);
|
380 | ss.setBlurryRecognitionEnabled(false);
|
381 | t.deepEqual(ss.isBlurryRecognitionEnabled(), false);
|
382 | ss.setBlurryRecognitionEnabled(true);
|
383 | t.deepEqual(ss.isBlurryRecognitionEnabled(), true);
|
384 | });
|
385 |
|
386 |
|
387 | test("toJSONString", t => {
|
388 | let ss: ScanSettings = new ScanSettings();
|
389 | t.deepEqual(JSON.parse(ss.toJSONString()), JSON.parse(JSON.stringify(baseJSONScanSettings)));
|
390 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR });
|
391 | t.deepEqual(
|
392 | JSON.parse(ss.toJSONString()),
|
393 | JSON.parse(
|
394 | JSON.stringify({
|
395 | ...baseJSONScanSettings,
|
396 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) }
|
397 | })
|
398 | )
|
399 | );
|
400 | ss = new ScanSettings({ enabledSymbologies: [Barcode.Symbology.QR] });
|
401 | t.deepEqual(
|
402 | JSON.parse(ss.toJSONString()),
|
403 | JSON.parse(
|
404 | JSON.stringify({
|
405 | ...baseJSONScanSettings,
|
406 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) }
|
407 | })
|
408 | )
|
409 | );
|
410 | ss = new ScanSettings({ enabledSymbologies: new Set([Barcode.Symbology.QR]) });
|
411 | t.deepEqual(
|
412 | JSON.parse(ss.toJSONString()),
|
413 | JSON.parse(
|
414 | JSON.stringify({
|
415 | ...baseJSONScanSettings,
|
416 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) }
|
417 | })
|
418 | )
|
419 | );
|
420 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR, codeDuplicateFilter: 10 });
|
421 | t.deepEqual(
|
422 | JSON.parse(ss.toJSONString()),
|
423 | JSON.parse(
|
424 | JSON.stringify({
|
425 | ...baseJSONScanSettings,
|
426 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
427 | codeDuplicateFilter: 10
|
428 | })
|
429 | )
|
430 | );
|
431 | ss = new ScanSettings({ enabledSymbologies: Barcode.Symbology.QR, maxNumberOfCodesPerFrame: 10 });
|
432 | t.deepEqual(
|
433 | JSON.parse(ss.toJSONString()),
|
434 | JSON.parse(
|
435 | JSON.stringify({
|
436 | ...baseJSONScanSettings,
|
437 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
438 | maxNumberOfCodesPerFrame: 10
|
439 | })
|
440 | )
|
441 | );
|
442 | ss = new ScanSettings({
|
443 | enabledSymbologies: Barcode.Symbology.QR,
|
444 | codeDuplicateFilter: 10,
|
445 | maxNumberOfCodesPerFrame: 10
|
446 | });
|
447 | t.deepEqual(
|
448 | JSON.parse(ss.toJSONString()),
|
449 | JSON.parse(
|
450 | JSON.stringify({
|
451 | ...baseJSONScanSettings,
|
452 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
453 | codeDuplicateFilter: 10,
|
454 | maxNumberOfCodesPerFrame: 10
|
455 | })
|
456 | )
|
457 | );
|
458 | ss = new ScanSettings({
|
459 | enabledSymbologies: Barcode.Symbology.QR,
|
460 | codeDuplicateFilter: 10,
|
461 | maxNumberOfCodesPerFrame: 10,
|
462 | gpuAcceleration: false,
|
463 | blurryRecognition: true
|
464 | });
|
465 | t.deepEqual(
|
466 | JSON.parse(ss.toJSONString()),
|
467 | JSON.parse(
|
468 | JSON.stringify({
|
469 | ...baseJSONScanSettings,
|
470 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
471 | codeDuplicateFilter: 10,
|
472 | maxNumberOfCodesPerFrame: 10,
|
473 | gpuAcceleration: false,
|
474 | blurryRecognition: true
|
475 | })
|
476 | )
|
477 | );
|
478 | ss = new ScanSettings({
|
479 | enabledSymbologies: Barcode.Symbology.QR,
|
480 | codeDuplicateFilter: 10,
|
481 | maxNumberOfCodesPerFrame: 10,
|
482 | gpuAcceleration: false,
|
483 | blurryRecognition: false
|
484 | });
|
485 | t.deepEqual(
|
486 | JSON.parse(ss.toJSONString()),
|
487 | JSON.parse(
|
488 | JSON.stringify({
|
489 | ...baseJSONScanSettings,
|
490 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
491 | codeDuplicateFilter: 10,
|
492 | maxNumberOfCodesPerFrame: 10,
|
493 | gpuAcceleration: false,
|
494 | blurryRecognition: false
|
495 | })
|
496 | )
|
497 | );
|
498 | ss = new ScanSettings({
|
499 | enabledSymbologies: Barcode.Symbology.QR,
|
500 | codeDuplicateFilter: 10,
|
501 | maxNumberOfCodesPerFrame: 10,
|
502 | searchArea: { x: 0.5, y: 0.5, width: 0.5, height: 0.1 },
|
503 | gpuAcceleration: false,
|
504 | blurryRecognition: false
|
505 | });
|
506 | t.deepEqual(
|
507 | JSON.parse(ss.toJSONString()),
|
508 | JSON.parse(
|
509 | JSON.stringify({
|
510 | ...baseJSONScanSettings,
|
511 | symbologies: { [Barcode.Symbology.QR]: new SymbologySettings({ enabled: true }) },
|
512 | codeDuplicateFilter: 10,
|
513 | maxNumberOfCodesPerFrame: 10,
|
514 | searchArea: ss.getSearchArea(),
|
515 | codeLocation1d: {
|
516 | area: {
|
517 | x: ss.getSearchArea().x,
|
518 | y: ss.getSearchArea().y + (ss.getSearchArea().height * 0.75) / 2,
|
519 | width: ss.getSearchArea().width,
|
520 | height: ss.getSearchArea().height * 0.25
|
521 | }
|
522 | },
|
523 | codeLocation2d: { area: ss.getSearchArea() },
|
524 | gpuAcceleration: false,
|
525 | blurryRecognition: false
|
526 | })
|
527 | )
|
528 | );
|
529 | });
|
530 |
|
531 | test("getBaseSearchArea & setBaseSearchArea", t => {
|
532 | const ss: ScanSettings = new ScanSettings({
|
533 | enabledSymbologies: Barcode.Symbology.AZTEC,
|
534 | codeDuplicateFilter: 5,
|
535 | maxNumberOfCodesPerFrame: 5,
|
536 | searchArea: { x: 0.5, y: 0.5, width: 0.5, height: 0.1 }
|
537 | });
|
538 | t.deepEqual(ss.getBaseSearchArea(), { height: 1, width: 1, x: 0, y: 0 });
|
539 | t.deepEqual(
|
540 | JSON.parse(ss.toJSONString()),
|
541 | JSON.parse(
|
542 | JSON.stringify({
|
543 | ...baseJSONScanSettings,
|
544 | symbologies: { [Barcode.Symbology.AZTEC]: new SymbologySettings({ enabled: true }) },
|
545 | codeDuplicateFilter: 5,
|
546 | maxNumberOfCodesPerFrame: 5,
|
547 | searchArea: ss.getSearchArea(),
|
548 | codeLocation1d: {
|
549 | area: {
|
550 | x: ss.getSearchArea().x,
|
551 | y: ss.getSearchArea().y + (ss.getSearchArea().height * 0.75) / 2,
|
552 | width: ss.getSearchArea().width,
|
553 | height: ss.getSearchArea().height * 0.25
|
554 | }
|
555 | },
|
556 | codeLocation2d: { area: ss.getSearchArea() }
|
557 | })
|
558 | )
|
559 | );
|
560 | ss.setBaseSearchArea({ x: 0.5, y: 0.5, width: 0.5, height: 0.1 });
|
561 | const baseSearchArea: SearchArea = ss.getBaseSearchArea();
|
562 | const searchArea: SearchArea = ss.getSearchArea();
|
563 | t.deepEqual(baseSearchArea, { x: 0.5, y: 0.5, width: 0.5, height: 0.1 });
|
564 | const combinedSearchArea: SearchArea = {
|
565 | x: baseSearchArea.x + searchArea.x * baseSearchArea.width,
|
566 | y: baseSearchArea.y + searchArea.y * baseSearchArea.height,
|
567 | width: baseSearchArea.width * searchArea.width,
|
568 | height: baseSearchArea.height * searchArea.height
|
569 | };
|
570 | t.deepEqual(
|
571 | JSON.parse(ss.toJSONString()),
|
572 | JSON.parse(
|
573 | JSON.stringify({
|
574 | ...baseJSONScanSettings,
|
575 | symbologies: { [Barcode.Symbology.AZTEC]: new SymbologySettings({ enabled: true }) },
|
576 | codeDuplicateFilter: 5,
|
577 | maxNumberOfCodesPerFrame: 5,
|
578 | searchArea: combinedSearchArea,
|
579 | codeLocation1d: {
|
580 | area: {
|
581 | x: combinedSearchArea.x,
|
582 | y: combinedSearchArea.y + (combinedSearchArea.height * 0.75) / 2,
|
583 | width: combinedSearchArea.width,
|
584 | height: combinedSearchArea.height * 0.25
|
585 | }
|
586 | },
|
587 | codeLocation2d: { area: combinedSearchArea }
|
588 | })
|
589 | )
|
590 | );
|
591 | });
|
592 |
|
593 | test("getProperty & setProperty", t => {
|
594 | const ss: ScanSettings = new ScanSettings();
|
595 | t.deepEqual(JSON.parse(ss.toJSONString()), JSON.parse(JSON.stringify(baseJSONScanSettings)));
|
596 | t.deepEqual(ss.getProperty("2d_enabled"), -1);
|
597 | ss.setProperty("2d_enabled", 0);
|
598 | t.deepEqual(ss.getProperty("2d_enabled"), 0);
|
599 | t.deepEqual(
|
600 | JSON.parse(ss.toJSONString()),
|
601 | JSON.parse(
|
602 | JSON.stringify({
|
603 | ...baseJSONScanSettings,
|
604 | properties: { "2d_enabled": 0 }
|
605 | })
|
606 | )
|
607 | );
|
608 | ss.setProperty("force_2d_recognition", 1);
|
609 | t.deepEqual(ss.getProperty("force_2d_recognition"), 1);
|
610 | t.deepEqual(
|
611 | JSON.parse(ss.toJSONString()),
|
612 | JSON.parse(
|
613 | JSON.stringify({
|
614 | ...baseJSONScanSettings,
|
615 | properties: { "2d_enabled": 0, force_2d_recognition: 1 }
|
616 | })
|
617 | )
|
618 | );
|
619 | });
|