cosmjs-util/packages/encoding/src/hex.spec.ts
2020-06-09 17:46:03 +02:00

45 lines
1.6 KiB
TypeScript

import { fromHex, toHex } from "./hex";
describe("fromHex", () => {
it("works", () => {
// simple
expect(fromHex("")).toEqual(new Uint8Array([]));
expect(fromHex("00")).toEqual(new Uint8Array([0x00]));
expect(fromHex("01")).toEqual(new Uint8Array([0x01]));
expect(fromHex("10")).toEqual(new Uint8Array([0x10]));
expect(fromHex("11")).toEqual(new Uint8Array([0x11]));
expect(fromHex("112233")).toEqual(new Uint8Array([0x11, 0x22, 0x33]));
expect(fromHex("0123456789abcdef")).toEqual(
new Uint8Array([0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]),
);
// capital letters
expect(fromHex("AA")).toEqual(new Uint8Array([0xaa]));
expect(fromHex("aAbBcCdDeEfF")).toEqual(new Uint8Array([0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff]));
// error
expect(() => fromHex("a")).toThrow();
expect(() => fromHex("aaa")).toThrow();
expect(() => fromHex("a!")).toThrow();
expect(() => fromHex("a ")).toThrow();
expect(() => fromHex("aa ")).toThrow();
expect(() => fromHex(" aa")).toThrow();
expect(() => fromHex("a a")).toThrow();
expect(() => fromHex("gg")).toThrow();
});
});
describe("toHex", () => {
it("works", () => {
expect(toHex(new Uint8Array([]))).toEqual("");
expect(toHex(new Uint8Array([0x00]))).toEqual("00");
expect(toHex(new Uint8Array([0x01]))).toEqual("01");
expect(toHex(new Uint8Array([0x10]))).toEqual("10");
expect(toHex(new Uint8Array([0x11]))).toEqual("11");
expect(toHex(new Uint8Array([0x11, 0x22, 0x33]))).toEqual("112233");
expect(toHex(new Uint8Array([0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]))).toEqual(
"0123456789abcdef",
);
});
});