OVMS3/OVMS.V3/components/duktape/extras/cbor/run_testvectors.js

31 lines
942 B
JavaScript

var testvectors = JSON.parse(new TextDecoder().decode(readFile('appendix_a.json')));
// Very rudimentary for now, just dump useful information about decode
// results and (simple, unstructured) comparison to expected. This is
// only useful for manually inspecting the results right now.
testvectors.forEach(function (test, idx) {
print('===', idx, '->', Duktape.enc('jx', test));
var cbor = Duktape.dec('base64', test.cbor);
try {
var dec = CBOR.decode(cbor);
} catch (e) {
print('decode failed: ' + e);
return;
}
print('dec (jx): ' + Duktape.enc('jx', dec));
if (dec !== test.decoded) {
print('decoded compare failed');
}
if (test.roundtrip) {
var enc = CBOR.encode(dec);
print('re-enc: ' + Duktape.enc('hex', enc));
if (Duktape.enc('base64', cbor) !== Duktape.enc('base64', enc)) {
print('roundtrip failed');
}
}
});