Testing and Diagnostics Capstone
Equality Check
Report Expected and Actual
A test helper can compare expected and actual values without panicking, which keeps diagnostics visible in replay.
Program
Play the program to choose an expected value and see whether the check passes.
equality_check_result.rs
Replay: real traced execution (multi-file project)
fn main() {
let expected = 42;
let actual = total(6, 7);
let passed = check_equal(actual, expected);
println!("actual={} passed={}", actual, passed);
}
fn total(left: i32, right: i32) -> i32 {
left * right
}
fn check_equal(actual: i32, expected: i32) -> bool {
actual == expected
}
fn main() {
let expected = 40;
let actual = total(6, 7);
let passed = check_equal(actual, expected);
println!("actual={} passed={}", actual, passed);
}
fn total(left: i32, right: i32) -> i32 {
left * right
}
fn check_equal(actual: i32, expected: i32) -> bool {
actual == expected
}
fn main() {
let expected = 45;
let actual = total(6, 7);
let passed = check_equal(actual, expected);
println!("actual={} passed={}", actual, passed);
}
fn total(left: i32, right: i32) -> i32 {
left * right
}
fn check_equal(actual: i32, expected: i32) -> bool {
actual == expected
}
expected ← 42
1fn main() {2 let expecte→ 42d = 42; //@expected=42, 40, 453 let actual = total(6, 7);4 let passed = check_equal(actual, expected);fn total(left: i32, right: i32) -> i32
8fn total(left: i32, right: i32) -> i32 {9 lef6t * righ7t10}actual ← 42
2let expected = 42; //@expected=42, 40, 453let actua→ 42l = total(6, 7);4let passed = check_equal(actua42l, expecte42d);5println!("actual={} passed={}", actual, passed);fn check_equal(actual: i32, expected: i32) -> bool
12fn check_equal(actual: i32, expected: i32) -> bool {13 actua42l == expecte42d14}passed ← true
3 let actual = total(6, 7);4 let passe→ trued = check_equal(actua42l, expecte42d);5 println!("actual={} passed={}", actual, passed);6}outputactual=42 passed=true
expected ← 40
1fn main() {2 let expecte→ 40d = 40;3 let actual = total(6, 7);4 let passed = check_equal(actual, expected);fn total(left: i32, right: i32) -> i32
8fn total(left: i32, right: i32) -> i32 {9 lef6t * righ7t10}actual ← 42
2let expected = 40;3let actua→ 42l = total(6, 7);4let passed = check_equal(actua42l, expecte40d);5println!("actual={} passed={}", actual, passed);fn check_equal(actual: i32, expected: i32) -> bool
12fn check_equal(actual: i32, expected: i32) -> bool {13 actua42l == expecte40d14}passed ← false
3 let actual = total(6, 7);4 let passe→ falsed = check_equal(actua42l, expecte40d);5 println!("actual={} passed={}", actual, passed);6}outputactual=42 passed=false
expected ← 45
1fn main() {2 let expecte→ 45d = 45;3 let actual = total(6, 7);4 let passed = check_equal(actual, expected);fn total(left: i32, right: i32) -> i32
8fn total(left: i32, right: i32) -> i32 {9 lef6t * righ7t10}actual ← 42
2let expected = 45;3let actua→ 42l = total(6, 7);4let passed = check_equal(actua42l, expecte45d);5println!("actual={} passed={}", actual, passed);fn check_equal(actual: i32, expected: i32) -> bool
12fn check_equal(actual: i32, expected: i32) -> bool {13 actua42l == expecte45d14}passed ← false
3 let actual = total(6, 7);4 let passe→ falsed = check_equal(actua42l, expecte45d);5 println!("actual={} passed={}", actual, passed);6}outputactual=42 passed=false
expected
The expected value is separate from the computed actual value.
helper
`check_equal` returns a boolean so replay can show both passing and failing checks.
diagnostic
Printing `actual` and `passed` gives a compact test-style report.