in src/metrics/abc.rs [1112:1149]
fn java_ternary_conditions() {
check_metrics::<JavaParser>(
"
a = true; // +1a
b = a ? true : false; // +1a +2c
c = ((((a)))) ? !false : !b; // +1a +4c
d = !this.m() ? !!a : (false); // +1a +1b +3c
e = !(a) && b ? ((c)) : !d; // +1a +4c
if ( this.m() ? a : !this.m() ) {} // +2b +3c
if ( x > 0 ? !(false) : this.m() ) {} // +1b +3c
if ( x > 0 && x != 3 ? !(a) : (!(b)) ) {} // +5c
",
"foo.java",
|metric| {
// magnitude: sqrt(25 + 16 + 576) = sqrt(617)
// space count: 1 (1 unit)
insta::assert_json_snapshot!(
metric.abc,
@r###"
{
"assignments": 5.0,
"branches": 4.0,
"conditions": 24.0,
"magnitude": 24.839484696748443,
"assignments_average": 5.0,
"branches_average": 4.0,
"conditions_average": 24.0,
"assignments_min": 5.0,
"assignments_max": 5.0,
"branches_min": 4.0,
"branches_max": 4.0,
"conditions_min": 24.0,
"conditions_max": 24.0
}"###
);
},
);
}