in src/metrics/abc.rs [887:932]
fn java_return_with_conditions() {
check_metrics::<JavaParser>(
"class A {
boolean m1() {
return !(z >= 0); // +1c
}
boolean m2() {
return (((!x))); // +1c
}
boolean m3() {
return x && y; // +2c
}
boolean m4() {
return y || (z < 0); // +2c
}
boolean m5() {
return x || y ? // +3c (two unary conditions and one ?)
true : false;
}
}",
"foo.java",
|metric| {
// magnitude: sqrt(0 + 0 + 81) = sqrt(81)
// space count: 7 (1 unit, 1 class and 5 methods)
insta::assert_json_snapshot!(
metric.abc,
@r###"
{
"assignments": 0.0,
"branches": 0.0,
"conditions": 9.0,
"magnitude": 9.0,
"assignments_average": 0.0,
"branches_average": 0.0,
"conditions_average": 1.2857142857142858,
"assignments_min": 0.0,
"assignments_max": 0.0,
"branches_min": 0.0,
"branches_max": 0.0,
"conditions_min": 0.0,
"conditions_max": 3.0
}"###
);
},
);
}