When to Use
- After writing critical code: Verify it correctly implements a concept or algorithm
- Logic errors: Detect off-by-one mistakes, wrong assumptions, or incorrect API usage
- Reference comparison: Compare against documented behavior and reference implementations