Testing and Diagnostics Capstone
Table Cases
Count Passing Rows
A table of input and expected pairs can be run through one expression to produce a compact pass count.
Program
Play the program to choose an offset and count how many table rows pass.
table_case_counter.rs
fn main() {
let offset = ;
let cases = [(1, 2), (3, 4), (5, 6)];
let passed = cases.iter()
.copied()
.map(|(input, expected)| input + offset == expected)
.filter(|passed| *passed)
.count();
println!("passed={}/{}", passed, cases.len());
}
fn main() {
let offset = ;
let cases = [(1, 2), (3, 4), (5, 6)];
let passed = cases.iter()
.copied()
.map(|(input, expected)| input + offset == expected)
.filter(|passed| *passed)
.count();
println!("passed={}/{}", passed, cases.len());
}
fn main() {
let offset = ;
let cases = [(1, 2), (3, 4), (5, 6)];
let passed = cases.iter()
.copied()
.map(|(input, expected)| input + offset == expected)
.filter(|passed| *passed)
.count();
println!("passed={}/{}", passed, cases.len());
}
table cases
Each tuple holds one input and expected output.
map
The `map` expression converts each row into a pass/fail boolean.
count
Filtering true booleans gives the number of passing rows.