import { expect, test, vi } from "vitest" import { randomNumber } from "#Source/random/index.ts" test("randomNumber returns expected output across ranges and available random sources", () => { const defaultValue = randomNumber() expect(defaultValue).toBeGreaterThanOrEqual(0) expect(defaultValue).toBeLessThan(1) const singleBoundValue = randomNumber(5) expect(singleBoundValue).toBeGreaterThanOrEqual(0) expect(singleBoundValue).toBeLessThan(5) const reversedRangeValue = randomNumber(10, 3) expect(reversedRangeValue).toBeGreaterThanOrEqual(3) expect(reversedRangeValue).toBeLessThan(10) expect(randomNumber(4, 4)).toBe(4) expect(() => randomNumber(Number.NaN)).toThrow(TypeError) expect(() => randomNumber(Number.POSITIVE_INFINITY)).toThrow(TypeError) expect(() => randomNumber(1, Number.NEGATIVE_INFINITY)).toThrow(TypeError) vi.stubGlobal("crypto", undefined) try { const fallbackValue = randomNumber(-2, 2) expect(fallbackValue).toBeGreaterThanOrEqual(-2) expect(fallbackValue).toBeLessThan(2) } finally { vi.unstubAllGlobals() } })