Skip to content
CryoCryo home
Stdlibtest

assert

import std::test::assert; · source

The assertion family

function expect(condition: boolean, message: Str) -> Result<(), TestError>;
function expect_true(condition: boolean, message: Str) -> Result<(), TestError>;
function expect_false(condition: boolean, message: Str) -> Result<(), TestError>;

function expect_eq<T>(a: T, b: T) -> Result<(), TestError>
where T: Eq + Display;

function expect_ne<T>(a: T, b: T) -> Result<(), TestError>
where T: Eq + Display;

function expect_close_f64(a: f64, b: f64, tolerance: f64) -> Result<(), TestError>;
function expect_some<T>(opt: &Option<T>, message: Str) -> Result<(), TestError>;
function expect_none<T>(opt: &Option<T>, message: Str) -> Result<(), TestError>;
function expect_ok<T, E>(r: &Result<T, E>, message: Str) -> Result<(), TestError>;
function expect_err<T, E>(r: &Result<T, E>, message: Str) -> Result<(), TestError>;
function bail(message: Str) -> Result<(), TestError>;
function bail_other(message: Str) -> Result<(), TestError>;

Every assertion returns Result<(), TestError>, so ? propagates a failure out of the test function.

FunctionPasses when
expect(condition, message)The condition holds.
expect_true / expect_falseThe obvious.
expect_eq(a, b) / expect_ne(a, b)The values compare equal / unequal. T: Eq + Display, so the failure message renders both.
expect_close_f64(a, b, tolerance)The values are within tolerance.
expect_some / expect_noneThe option has / lacks a value.
expect_ok / expect_errThe result is Ok / Err.

bail(message) fails the test outright, and bail_other(message) reports a non-assertion failure — a setup problem rather than a wrong answer.