zplCore.comzplCore.com

34Tests & verification

xUnit test suite

Parser, rendering, fonts, shaping, binding, print jobs, export, object model, connections, printer commands, settings – dotnet test runs in a few seconds.

Barcodes are read back

Every ported encoder (postal codes, Codablock F, Code 16K/49, PDF417/MicroPDF417, Han Xin, DotCode, Ultracode, rMQR, QR variants, Data Matrix, Aztec, GS1, Composite …) is verified bit-exact against bwip-js (zint ports against zint) – including all 7 GS1 DataBar variants with 80 dedicated reference cases – and the reference matrices are in the tests. Where ZXing.Net knows the symbology, the barcode is additionally decoded.

Databases

EF Core with SQLite (in-memory, 2000 rows) and LiteDB (typed + BsonDocument) in the unit tests, SQL Server 2022, PostgreSQL and MongoDB via Testcontainers in tests/ZplCore.IntegrationTests; samples/MassDataDemo generates the sample jobs.

Checking tools, MCP & packages

Own suites for ZplCore.Testing, the MCP server (including adversarial, fuzz and end-to-end tests of the sandbox) and Vector-Lift; compliance, scan-proof, import, extraction, GS1, RFID, printer twin and the chaos printer in the main suite. build/package-smoke.sh packs the NuGet packages and publishes a test app (also win-x64), build/aot-smoke.sh compares JIT and NativeAOT output.

This documentation

All screenshots are generated by samples/DocsGenerator from real ZPL/EPL or the barcode API; all C# examples live in compilable form in samples/DocsExamples and are copied verbatim into this page by the generator.

dotnet test                                  # all tests 
dotnet run --project samples/LabelaryCompare # pixel comparison against Labelary references
dotnet run --project samples/DocsGenerator   # docs/img, docs/zpl, docs/files, docs/examples.js, C# snippets
dotnet build samples/DocsExamples            # compile check of the docs snippets
build/package-smoke.sh                       # NuGet packages + test app (Windows publish included)
build/aot-smoke.sh                           # JIT against NativeAOT output