Skip to main content
Home

@std/assert@1.0.17
Built and signed on GitHub Actions

Works with
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score100%
Downloads73,358/wk
Published3 days ago (1.0.17)

Common assertion functions, especially useful for testing

function assertAlmostEquals
assertAlmostEquals(
actual: number,
expected: number,
tolerance?: number,
msg?: string,
): void

Make an assertion that actual and expected are almost equal numbers through a given tolerance. It can be used to take into account IEEE-754 double-precision floating-point representation limitations. If the values are not almost equal then throw.

The default tolerance is one hundred thousandth of a percent of the expected value.

Examples

Usage

import { assertAlmostEquals } from "@std/assert";

assertAlmostEquals(0.01, 0.02); // Throws
assertAlmostEquals(1e-8, 1e-9); // Throws
assertAlmostEquals(1.000000001e-8, 1.000000002e-8); // Doesn't throw
assertAlmostEquals(0.01, 0.02, 0.1); // Doesn't throw
assertAlmostEquals(0.1 + 0.2, 0.3, 1e-16); // Doesn't throw
assertAlmostEquals(0.1 + 0.2, 0.3, 1e-17); // Throws

Parameters

actual: number

The actual value to compare.

expected: number

The expected value to compare.

optional
tolerance: number

The tolerance to consider the values almost equal. The default is one hundred thousandth of a percent of the expected value.

optional
msg: string

The optional message to include in the error.

Return Type

void

Throws

AssertionError

If the values are not almost equal.

Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";
or

Import directly with a jsr specifier

import { assertAlmostEquals } from "jsr:@std/assert/almost-equals";

Add Package

pnpm i jsr:@std/assert
or (using pnpm 10.8 or older)
pnpm dlx jsr add @std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";

Add Package

yarn add jsr:@std/assert
or (using Yarn 4.8 or older)
yarn dlx jsr add @std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";

Add Package

vlt install jsr:@std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";

Add Package

npx jsr add @std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";

Add Package

bunx jsr add @std/assert

Import symbol

import { assertAlmostEquals } from "@std/assert/almost-equals";