File size: 1,858 Bytes
cf86710 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import { formatNumber } from "./formatNumber";
describe("formatNumber", () => {
test("should format numbers using Ethiopian numerals", () => {
expect(formatNumber(1, "geez")).toBe("፩");
expect(formatNumber(10, "geez")).toBe("፲");
expect(formatNumber(12, "geez")).toBe("፲፪");
expect(formatNumber(21, "geez")).toBe("፳፩");
expect(formatNumber(100, "geez")).toBe("፻");
expect(formatNumber(1000, "geez")).toBe("፲፻");
expect(formatNumber(10000, "geez")).toBe("፼");
// years
expect(formatNumber(1998, "geez")).toBe("፲፱፻፺፰");
expect(formatNumber(2000, "geez")).toBe("፳፻");
expect(formatNumber(2002, "geez")).toBe("፳፻፪");
// Complex numbers
expect(formatNumber(140000, "geez")).toBe("፲፬፼");
expect(formatNumber(123, "geez")).toBe("፻፳፫");
expect(formatNumber(1234, "geez")).toBe("፲፪፻፴፬");
expect(formatNumber(38965, "geez")).toBe("፫፼፹፱፻፷፭");
});
test("should format numbers using latin numerals by default", () => {
expect(formatNumber(123)).toBe("123");
expect(formatNumber(1234)).toBe("1,234");
expect(formatNumber(12345)).toBe("12,345");
// Explicit latin format
expect(formatNumber(123, "latn")).toBe("123");
expect(formatNumber(1234, "latn")).toBe("1,234");
expect(formatNumber(12345, "latn")).toBe("12,345");
});
test("should handle zero and negative numbers correctly", () => {
// Zero
expect(formatNumber(0, "geez")).toBe("-"); // Special case in Geez
expect(formatNumber(0, "latn")).toBe("0");
// Negative numbers
expect(formatNumber(-123, "geez")).toBe("-፻፳፫");
expect(formatNumber(-1234, "geez")).toBe("-፲፪፻፴፬");
expect(formatNumber(-123, "latn")).toBe("-123");
expect(formatNumber(-1234, "latn")).toBe("-1,234");
});
});
|