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.

expected
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
}
  1. 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);
  2. fn total(left: i32, right: i32) -> i32

    8fn total(left: i32, right: i32) -> i32 {9    lef6t * righ7t10}
  3. 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);
  4. fn check_equal(actual: i32, expected: i32) -> bool

    12fn check_equal(actual: i32, expected: i32) -> bool {13    actua42l == expecte42d14}
  5. 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
  1. expected ← 40

    1fn main() {2    let expecte→ 40d = 40;3    let actual = total(6, 7);4    let passed = check_equal(actual, expected);
  2. fn total(left: i32, right: i32) -> i32

    8fn total(left: i32, right: i32) -> i32 {9    lef6t * righ7t10}
  3. actual ← 42

    2let expected = 40;3let actua→ 42l = total(6, 7);4let passed = check_equal(actua42l, expecte40d);5println!("actual={} passed={}", actual, passed);
  4. fn check_equal(actual: i32, expected: i32) -> bool

    12fn check_equal(actual: i32, expected: i32) -> bool {13    actua42l == expecte40d14}
  5. 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
  1. expected ← 45

    1fn main() {2    let expecte→ 45d = 45;3    let actual = total(6, 7);4    let passed = check_equal(actual, expected);
  2. fn total(left: i32, right: i32) -> i32

    8fn total(left: i32, right: i32) -> i32 {9    lef6t * righ7t10}
  3. actual ← 42

    2let expected = 45;3let actua→ 42l = total(6, 7);4let passed = check_equal(actua42l, expecte45d);5println!("actual={} passed={}", actual, passed);
  4. fn check_equal(actual: i32, expected: i32) -> bool

    12fn check_equal(actual: i32, expected: i32) -> bool {13    actua42l == expecte45d14}
  5. 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.