scandit-sdk
Version:
Scandit Barcode Scanner SDK for the Web
564 lines (535 loc) • 25.3 kB
text/typescript
/* tslint:disable:no-implicit-dependencies no-any */
/**
* SymbologySettings tests
*/
import test, { ExecutionContext } from "ava";
import { SymbologySettings } from "..";
function setsEqual<T>(t: ExecutionContext, firstSet: Set<T | string>, secondSet: Set<T | string>): void {
if (firstSet.size !== secondSet.size) {
return t.fail("Different set sizes");
}
for (const x of firstSet) {
if (!secondSet.has(x)) {
return t.fail("Different set contents");
}
}
return t.pass();
}
test("constructor", t => {
let ss: SymbologySettings = new SymbologySettings();
t.false((<any>ss).enabled);
t.false((<any>ss).colorInvertedEnabled);
t.deepEqual((<any>ss).activeSymbolCounts.length, 0);
t.deepEqual((<any>ss).extensions.size, 0);
t.deepEqual((<any>ss).checksums.size, 0);
ss = new SymbologySettings({});
t.false((<any>ss).enabled);
t.false((<any>ss).colorInvertedEnabled);
t.deepEqual((<any>ss).activeSymbolCounts.length, 0);
t.deepEqual((<any>ss).extensions.size, 0);
t.deepEqual((<any>ss).checksums.size, 0);
ss = new SymbologySettings({ enabled: true });
t.true((<any>ss).enabled);
ss = new SymbologySettings({ colorInvertedEnabled: true });
t.true((<any>ss).colorInvertedEnabled);
ss = new SymbologySettings({
activeSymbolCounts: [8, 9, 10]
});
t.deepEqual((<any>ss).activeSymbolCounts, [8, 9, 10]);
ss = new SymbologySettings({
extensions: new Set([SymbologySettings.Extension.FULL_ASCII])
});
setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
ss = new SymbologySettings({
extensions: [SymbologySettings.Extension.FULL_ASCII]
});
setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
ss = new SymbologySettings({
checksums: new Set([SymbologySettings.Checksum.MOD_10])
});
setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
ss = new SymbologySettings({
checksums: [SymbologySettings.Checksum.MOD_10]
});
setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
});
test("constructor (strings)", t => {
let ss: SymbologySettings = new SymbologySettings({
extensions: <Set<SymbologySettings.Extension>>new Set(["full_ascii"])
});
setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
ss = new SymbologySettings({
extensions: <SymbologySettings.Extension[]>["full_ascii"]
});
setsEqual(t, (<any>ss).extensions, new Set([SymbologySettings.Extension.FULL_ASCII]));
ss = new SymbologySettings({
checksums: <Set<SymbologySettings.Checksum>>new Set(["mod10"])
});
setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
ss = new SymbologySettings({
checksums: <SymbologySettings.Checksum[]>["mod10"]
});
setsEqual(t, (<any>ss).checksums, new Set([SymbologySettings.Checksum.MOD_10]));
ss = new SymbologySettings({
extensions: <Set<SymbologySettings.Extension>>(<unknown>new Set(["i_dont_exist"])),
checksums: <Set<SymbologySettings.Checksum>>(<unknown>new Set(["i_dont_exist"]))
});
t.deepEqual((<any>ss).extensions.size, 0);
t.deepEqual((<any>ss).checksums.size, 0);
ss = new SymbologySettings({
extensions: <SymbologySettings.Extension[]>(<unknown>Array.from(["i_dont_exist"])),
checksums: <SymbologySettings.Checksum[]>(<unknown>Array.from(["i_dont_exist"]))
});
t.deepEqual((<any>ss).extensions.size, 0);
t.deepEqual((<any>ss).checksums.size, 0);
});
test("isEnabled & setEnabled", t => {
const ss: SymbologySettings = new SymbologySettings();
t.false(ss.isEnabled());
ss.setEnabled(false);
t.false(ss.isEnabled());
ss.setEnabled(true);
t.true(ss.isEnabled());
ss.setEnabled(true);
t.true(ss.isEnabled());
ss.setEnabled(false);
t.false(ss.isEnabled());
});
test("isColorInvertedEnabled & setColorInvertedEnabled", t => {
const ss: SymbologySettings = new SymbologySettings();
t.false(ss.isColorInvertedEnabled());
ss.setColorInvertedEnabled(false);
t.false(ss.isColorInvertedEnabled());
ss.setColorInvertedEnabled(true);
t.true(ss.isColorInvertedEnabled());
ss.setColorInvertedEnabled(true);
t.true(ss.isColorInvertedEnabled());
ss.setColorInvertedEnabled(false);
t.false(ss.isColorInvertedEnabled());
});
test("getActiveSymbolCounts & setActiveSymbolCounts", t => {
const ss: SymbologySettings = new SymbologySettings();
t.deepEqual(ss.getActiveSymbolCounts(), []);
ss.setActiveSymbolCounts([]);
t.deepEqual(ss.getActiveSymbolCounts(), []);
ss.setActiveSymbolCounts([1]);
t.deepEqual(ss.getActiveSymbolCounts(), [1]);
ss.setActiveSymbolCounts([1, 2, 3]);
t.deepEqual(ss.getActiveSymbolCounts(), [1, 2, 3]);
});
test("setActiveSymbolCountsRange", t => {
const ss: SymbologySettings = new SymbologySettings();
ss.setActiveSymbolCountsRange(1, 2);
t.deepEqual(ss.getActiveSymbolCounts(), [1, 2]);
ss.setActiveSymbolCountsRange(1, 3);
t.deepEqual(ss.getActiveSymbolCounts(), [1, 2, 3]);
ss.setActiveSymbolCountsRange(10, 16);
t.deepEqual(ss.getActiveSymbolCounts(), [10, 11, 12, 13, 14, 15, 16]);
ss.setActiveSymbolCountsRange(1, 1);
t.deepEqual(ss.getActiveSymbolCounts(), [1]);
ss.setActiveSymbolCountsRange(1, 0);
t.deepEqual(ss.getActiveSymbolCounts(), []);
});
test("getEnabledExtensions & enableExtensions & disableExtensions", t => {
const ss: SymbologySettings = new SymbologySettings();
ss.disableExtensions(SymbologySettings.Extension.FULL_ASCII);
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.disableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Set
ss.enableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions(new Set([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]));
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions(new Set([SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK]));
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions(new Set([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]));
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.disableExtensions(new Set([SymbologySettings.Extension.FULL_ASCII]));
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions(
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Array
ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions([SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK]);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions([SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Single
ss.enableExtensions(SymbologySettings.Extension.FULL_ASCII);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions(SymbologySettings.Extension.FULL_ASCII);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.enableExtensions(SymbologySettings.Extension.DIRECT_PART_MARKING_MODE);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions(SymbologySettings.Extension.RELAXED_SHARP_QUIET_ZONE_CHECK);
setsEqual(
t,
ss.getEnabledExtensions(),
new Set([SymbologySettings.Extension.FULL_ASCII, SymbologySettings.Extension.DIRECT_PART_MARKING_MODE])
);
ss.disableExtensions(SymbologySettings.Extension.DIRECT_PART_MARKING_MODE);
setsEqual(t, ss.getEnabledExtensions(), new Set([SymbologySettings.Extension.FULL_ASCII]));
ss.disableExtensions(SymbologySettings.Extension.FULL_ASCII);
setsEqual(t, ss.getEnabledExtensions(), new Set());
});
test("getEnabledExtensions & enableExtensions & disableExtensions (strings)", t => {
const ss: SymbologySettings = new SymbologySettings();
ss.disableExtensions(<SymbologySettings.Extension>"full_ascii");
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(<SymbologySettings.Extension>(<unknown>"i_dont_exist"));
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(<SymbologySettings.Extension[]>(<unknown>Array.from(["i_dont_exist"])));
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(<Set<SymbologySettings.Extension>>(<unknown>new Set(["i_dont_exist"])));
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Set
ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["direct_part_marking_mode"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["relaxed_sharp_quiet_zone_check"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["direct_part_marking_mode"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii"]));
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii", "direct_part_marking_mode"]));
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<Set<SymbologySettings.Extension>>new Set(["full_ascii", "direct_part_marking_mode"]));
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Array
ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<SymbologySettings.Extension[]>["direct_part_marking_mode"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<SymbologySettings.Extension[]>["relaxed_sharp_quiet_zone_check"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<SymbologySettings.Extension[]>["direct_part_marking_mode"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii"]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
ss.enableExtensions(<SymbologySettings.Extension[]>["full_ascii", "direct_part_marking_mode"]);
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<SymbologySettings.Extension[]>["full_ascii", "direct_part_marking_mode"]);
setsEqual(t, ss.getEnabledExtensions(), new Set());
// Single
ss.enableExtensions(<SymbologySettings.Extension>"full_ascii");
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<SymbologySettings.Extension>"full_ascii");
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.enableExtensions(<SymbologySettings.Extension>"direct_part_marking_mode");
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<SymbologySettings.Extension>"relaxed_sharp_quiet_zone_check");
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii", "direct_part_marking_mode"]));
ss.disableExtensions(<SymbologySettings.Extension>"direct_part_marking_mode");
setsEqual(t, ss.getEnabledExtensions(), new Set(["full_ascii"]));
ss.disableExtensions(<SymbologySettings.Extension>"full_ascii");
setsEqual(t, ss.getEnabledExtensions(), new Set());
});
test("getEnabledChecksums & enableChecksums & disableChecksums", t => {
const ss: SymbologySettings = new SymbologySettings();
ss.disableChecksums(SymbologySettings.Checksum.MOD_10);
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.disableChecksums([SymbologySettings.Checksum.MOD_10]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Set
ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_43]));
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_16]));
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_43]));
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]));
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums(new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Array
ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums([SymbologySettings.Checksum.MOD_43]);
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums([SymbologySettings.Checksum.MOD_16]);
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums([SymbologySettings.Checksum.MOD_43]);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.disableChecksums([SymbologySettings.Checksum.MOD_10]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]);
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Single
ss.enableChecksums(SymbologySettings.Checksum.MOD_10);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums(SymbologySettings.Checksum.MOD_10);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.enableChecksums(SymbologySettings.Checksum.MOD_43);
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums(SymbologySettings.Checksum.MOD_16);
setsEqual(
t,
ss.getEnabledChecksums(),
new Set([SymbologySettings.Checksum.MOD_10, SymbologySettings.Checksum.MOD_43])
);
ss.disableChecksums(SymbologySettings.Checksum.MOD_43);
setsEqual(t, ss.getEnabledChecksums(), new Set([SymbologySettings.Checksum.MOD_10]));
ss.disableChecksums(SymbologySettings.Checksum.MOD_10);
setsEqual(t, ss.getEnabledChecksums(), new Set());
});
test("getEnabledChecksums & enableChecksums & disableChecksums (strings)", t => {
const ss: SymbologySettings = new SymbologySettings();
ss.disableChecksums(<SymbologySettings.Checksum>"mod10");
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(<SymbologySettings.Checksum>(<unknown>"i_dont_exist"));
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(<SymbologySettings.Checksum[]>(<unknown>Array.from(["i_dont_exist"])));
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(<Set<SymbologySettings.Checksum>>(<unknown>new Set(["i_dont_exist"])));
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Set
ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod43"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod16"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod43"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10"]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10", "mod43"]));
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<Set<SymbologySettings.Checksum>>new Set(["mod10", "mod43"]));
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Array
ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<SymbologySettings.Checksum[]>["mod43"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<SymbologySettings.Checksum[]>["mod16"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<SymbologySettings.Checksum[]>["mod43"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10"]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
ss.enableChecksums(<SymbologySettings.Checksum[]>["mod10", "mod43"]);
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<SymbologySettings.Checksum[]>["mod10", "mod43"]);
setsEqual(t, ss.getEnabledChecksums(), new Set());
// Single
ss.enableChecksums(<SymbologySettings.Checksum>"mod10");
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<SymbologySettings.Checksum>"mod10");
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.enableChecksums(<SymbologySettings.Checksum>"mod43");
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<SymbologySettings.Checksum>"mod16");
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10", "mod43"]));
ss.disableChecksums(<SymbologySettings.Checksum>"mod43");
setsEqual(t, ss.getEnabledChecksums(), new Set(["mod10"]));
ss.disableChecksums(<SymbologySettings.Checksum>"mod10");
setsEqual(t, ss.getEnabledChecksums(), new Set());
});
test("toJSON", t => {
let ss: SymbologySettings = new SymbologySettings();
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: false,
colorInvertedEnabled: false
})
);
ss = new SymbologySettings({});
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: false,
colorInvertedEnabled: false
})
);
ss = new SymbologySettings({ enabled: true });
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: true,
colorInvertedEnabled: false
})
);
ss = new SymbologySettings({ colorInvertedEnabled: true });
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: false,
colorInvertedEnabled: true
})
);
ss = new SymbologySettings({ enabled: true, colorInvertedEnabled: true });
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: true,
colorInvertedEnabled: true
})
);
ss = new SymbologySettings({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10]
});
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10]
})
);
ss = new SymbologySettings({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10],
extensions: new Set([SymbologySettings.Extension.FULL_ASCII])
});
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10],
extensions: [SymbologySettings.Extension.FULL_ASCII]
})
);
ss = new SymbologySettings({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10],
extensions: new Set([SymbologySettings.Extension.FULL_ASCII]),
checksums: new Set([SymbologySettings.Checksum.MOD_10])
});
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: true,
colorInvertedEnabled: true,
activeSymbolCounts: [8, 9, 10],
extensions: [SymbologySettings.Extension.FULL_ASCII],
checksums: [SymbologySettings.Checksum.MOD_10]
})
);
ss = new SymbologySettings();
ss.enableExtensions([SymbologySettings.Extension.FULL_ASCII]);
ss.enableChecksums([SymbologySettings.Checksum.MOD_10]);
t.deepEqual(
JSON.stringify(ss),
JSON.stringify({
enabled: false,
colorInvertedEnabled: false,
extensions: [SymbologySettings.Extension.FULL_ASCII],
checksums: [SymbologySettings.Checksum.MOD_10]
})
);
});