in src/metrics/cognitive.rs [928:991]
fn rust_not_booleans() {
check_metrics::<RustParser>(
"fn f() {
if !a && !b { // +2 (+1 &&)
println!(\"test\");
}
}",
"foo.rs",
|metric| {
insta::assert_json_snapshot!(
metric.cognitive,
@r###"
{
"sum": 2.0,
"average": 2.0,
"min": 0.0,
"max": 2.0
}"###
);
},
);
check_metrics::<RustParser>(
"fn f() {
if a && !(b && c) { // +3 (+1 &&, +1 &&)
println!(\"test\");
}
}",
"foo.rs",
|metric| {
insta::assert_json_snapshot!(
metric.cognitive,
@r###"
{
"sum": 3.0,
"average": 3.0,
"min": 0.0,
"max": 3.0
}"###
);
},
);
check_metrics::<RustParser>(
"fn f() {
if !(a || b) && !(c || d) { // +4 (+1 ||, +1 &&, +1 ||)
println!(\"test\");
}
}",
"foo.rs",
|metric| {
insta::assert_json_snapshot!(
metric.cognitive,
@r###"
{
"sum": 4.0,
"average": 4.0,
"min": 0.0,
"max": 4.0
}"###
);
},
);
}