




















11import { describe, expect, test } from "vitest";
2-import { asFiniteNumber, asFiniteNumberInRange, parseFiniteNumber } from "./number-coercion.js";
2+import {
3+asFiniteNumber,
4+asFiniteNumberInRange,
5+asSafeIntegerInRange,
6+parseFiniteNumber,
7+} from "./number-coercion.js";
3849describe("number-coercion", () => {
510test("asFiniteNumber accepts only finite numbers", () => {
@@ -17,6 +22,14 @@ describe("number-coercion", () => {
1722expect(asFiniteNumberInRange("1", { min: 0, max: 2 })).toBeUndefined();
1823});
192425+test("asSafeIntegerInRange accepts only safe integers inside inclusive bounds", () => {
26+expect(asSafeIntegerInRange(-1, { min: -1, max: 10 })).toBe(-1);
27+expect(asSafeIntegerInRange(10, { min: -1, max: 10 })).toBe(10);
28+expect(asSafeIntegerInRange(1.5, { min: -1, max: 10 })).toBeUndefined();
29+expect(asSafeIntegerInRange(11, { min: -1, max: 10 })).toBeUndefined();
30+expect(asSafeIntegerInRange(Number.NaN, { min: -1, max: 10 })).toBeUndefined();
31+});
32+2033test("parseFiniteNumber accepts finite numbers and numeric strings", () => {
2134expect(parseFiniteNumber(4)).toBe(4);
2235expect(parseFiniteNumber("4.5")).toBe(4.5);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。