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
| Function | Description |
|---|---|
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!")