From 11165c585c3cbca38481d4fe38eca8f9afcd72f5 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Tue, 4 Aug 2020 22:51:09 +0200 Subject: [PATCH 1/2] Fix Mi metric --- src/spaces.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/spaces.rs b/src/spaces.rs index e797902ae..a90c3bcbd 100644 --- a/src/spaces.rs +++ b/src/spaces.rs @@ -178,6 +178,8 @@ fn compute_halstead_and_mi<'a, T: ParserTrait>(state: &mut State<'a>) { fn finalize<'a, T: ParserTrait>(state_stack: &mut Vec>, diff_level: usize) { for _ in 0..diff_level { if state_stack.len() <= 1 { + let mut last_state = state_stack.last_mut().unwrap(); + compute_halstead_and_mi::(&mut last_state); break; } From 292a59a837045a5f53cb9f5151157809f2f526b8 Mon Sep 17 00:00:00 2001 From: Luni-4 Date: Wed, 5 Aug 2020 11:04:37 +0200 Subject: [PATCH 2/2] Add Mi test --- src/metrics/mi.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/metrics/mi.rs b/src/metrics/mi.rs index ee4a91f7f..583c516f2 100644 --- a/src/metrics/mi.rs +++ b/src/metrics/mi.rs @@ -112,3 +112,27 @@ impl Mi for JavaCode {} impl Mi for GoCode {} impl Mi for CssCode {} impl Mi for HtmlCode {} + +#[cfg(test)] +mod tests { + use std::path::PathBuf; + + use super::*; + + #[test] + fn test_mi_formulas() { + check_metrics!( + "def f(): + pass\n", + "foo.py", + PythonParser, + mi, + [], + [ + (mi_original, 151.433_315_883_223_23), + (mi_sei, 142.873_061_717_489_78), + (mi_visual_studio, 88.557_494_668_551_6), + ] + ); + } +}