assert Module

The assert module provides comprehensive testing assertions for validating conditions, types, exceptions, and collection equality in unit tests and development suites.

Importing

djazair
use assert

Truthiness & Equality Assertions

FunctionDescription
assert.isTrue(val, msg?)Asserts that val evaluates to true.
assert.isFalse(val, msg?)Asserts that val evaluates to false.
assert.equal(actual, expected, msg?)Asserts that actual == expected (supports deep equality).
assert.notEqual(actual, expected, msg?)Asserts that actual != expected.
assert.approxEqual(a, b, tolerance, message)Asserts that two floats are equal within tolerance.
assert.isNull(val, msg?)Asserts that val is Null.
assert.notNull(val, msg?)Asserts that val is not Null.

Practical Unit Test Example

djazair
use assert

fn calculateDiscount(price, percentage)
    if percentage < 0 or percentage > 100
        throw "Invalid percentage"
    end
    return price * (1.0 - percentage / 100.0)
end

# 1. Equality check
assert.equal(calculateDiscount(100, 20), 80.0, "Discount calculation")

# 2. Approximate float comparison (value, expected, tolerance, message)
assert.approxEqual(calculateDiscount(99.99, 15), 84.9915, 0.001, "Discount approximate equality")

# 3. Exception testing
let threw = False
try
    calculateDiscount(100, 150)
catch e
    threw = True
end
assert.isTrue(threw, "Out-of-range percentage must throw error")

print("All assertions passed successfully!")