Skip to content

Commit 7206d8a

Browse files
committed
test: add cases for exponent density parsing and validation
- Added tests to ensure correct parsing of density descriptors with exponent notation. - Introduced validation for invalid exponent density formats (e.g., negative values). - Verified normalization and serialization of parsed exponent density descriptors.
1 parent 66fd08f commit 7206d8a

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

tests/index.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ describe("parse", () => {
4343
expect(parse("image.png 1e1x")).toEqual([{url: "image.png", density: 10}]);
4444
expect(parse("image.png 1E1x")).toEqual([{url: "image.png", density: 10}]);
4545
expect(parse("image.png 1e-1x")).toEqual([{url: "image.png", density: 0.1}]);
46+
expect(parse("image.png 1.5e2x")).toEqual([{url: "image.png", density: 150}]);
4647
expect(parse("image.png 1.5e+2x")).toEqual([{url: "image.png", density: 150}]);
4748
expect(parse("image.png .5e1x")).toEqual([{url: "image.png", density: 5}]);
4849
});
@@ -201,6 +202,7 @@ describe("validate", () => {
201202
expectInvalidCodes("a.png -0x", ["invalid-descriptor"]);
202203
expectInvalidCodes("a.png -0e1x", ["invalid-descriptor"]);
203204
expectInvalidCodes("a.png -1e0x", ["invalid-descriptor"]);
205+
expectInvalidCodes("a.png -1e1x", ["invalid-descriptor"]);
204206
expectInvalidCodes("a.png -1.5e+2x", ["invalid-descriptor"]);
205207
});
206208

@@ -312,6 +314,19 @@ describe("stringify", () => {
312314
expect(stringify([{url: "image.png", density: 1.5}])).toBe("image.png 1.5x");
313315
});
314316

317+
test("normalizes parsed exponent density descriptors", () => {
318+
const integerDensity = parse("a.png 1e1x");
319+
const fractionalDensity = parse("a.png 1e-1x");
320+
const decimalDensity = parse("a.png 1.5e+2x");
321+
322+
expect(integerDensity).toEqual([{url: "a.png", density: 10}]);
323+
expect(fractionalDensity).toEqual([{url: "a.png", density: 0.1}]);
324+
expect(decimalDensity).toEqual([{url: "a.png", density: 150}]);
325+
expect(stringify(integerDensity)).toBe("a.png 10x");
326+
expect(stringify(fractionalDensity)).toBe("a.png 0.1x");
327+
expect(stringify(decimalDensity)).toBe("a.png 150x");
328+
});
329+
315330
test("serializes width candidates", () => {
316331
expect(stringify([{url: "image.png", width: 640}])).toBe("image.png 640w");
317332
});

0 commit comments

Comments
 (0)