Release Binary Tools 0.1.0
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
decodeBase32,
|
||||
decodeBase58,
|
||||
decodeInput,
|
||||
encodeBase32,
|
||||
encodeBase58,
|
||||
formatHexRows,
|
||||
} from "../../src/core/encoding";
|
||||
|
||||
describe("binary encodings", () => {
|
||||
it("round-trips RFC 4648 Base32", () => {
|
||||
const bytes = new TextEncoder().encode("foobar");
|
||||
expect(encodeBase32(bytes)).toBe("MZXW6YTBOI======");
|
||||
expect(new TextDecoder().decode(decodeBase32("MZXW6YTBOI======"))).toBe(
|
||||
"foobar",
|
||||
);
|
||||
});
|
||||
|
||||
it("round-trips Base58 including leading zeros", () => {
|
||||
const bytes = Uint8Array.of(0, 0, 1, 2, 255);
|
||||
expect(decodeBase58(encodeBase58(bytes))).toEqual(bytes);
|
||||
});
|
||||
|
||||
it("rejects malformed hex", () => {
|
||||
expect(() => decodeInput("abc", "hex")).toThrow(/byte pairs/u);
|
||||
});
|
||||
|
||||
it("retains absolute offsets for paged byte inspection", () => {
|
||||
expect(formatHexRows(Uint8Array.of(1, 2, 3), 4_096)[0]?.offset).toBe(4_096);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user