# Global Metrics

path: .metrics.halstead.difficulty
old: 44.245222929936304
new: 31.943661971830984
path: .metrics.halstead.N2
old: 421.0
new: 216.0
path: .metrics.halstead.bugs
old: 1.6459674317685404
new: 0.7586070761113629
path: .metrics.halstead.volume
old: 7842.370410230862
new: 3398.775779105704
path: .metrics.halstead.estimated_program_length
old: 1311.7204635148144
new: 528.8707113631864
path: .metrics.halstead.length
old: 1036.0
new: 521.0
path: .metrics.halstead.level
old: 0.022601310012236375
new: 0.03130511463844797
path: .metrics.halstead.effort
old: 346987.4270998005
new: 108569.3446057991
path: .metrics.halstead.n1
old: 33.0
new: 21.0
path: .metrics.halstead.vocabulary
old: 190.0
new: 92.0
path: .metrics.halstead.N1
old: 615.0
new: 305.0
path: .metrics.halstead.purity_ratio
old: 1.266139443547118
new: 1.015106931599206
path: .metrics.halstead.time
old: 19277.07928332225
new: 6031.630255877728
path: .metrics.halstead.n2
old: 157.0
new: 71.0
path: .metrics.nexits.sum
old: 12.0
new: 17.0
path: .metrics.nexits.average
old: 1.0909090909090908
new: 1.3076923076923077
path: .metrics.nom.total
old: 11.0
new: 13.0
path: .metrics.nom.functions
old: 11.0
new: 13.0
path: .metrics.nargs.sum
old: 12.0
new: 23.0
path: .metrics.nargs.average
old: 1.0909090909090908
new: 1.7692307692307692
path: .metrics.cyclomatic.sum
old: 58.0
new: 28.0
path: .metrics.cyclomatic.average
old: 2.9
new: 1.8666666666666667
path: .metrics.loc.blank
old: 43.0
new: 32.0
path: .metrics.loc.cloc
old: 130.0
new: 6.0
path: .metrics.loc.lloc
old: 73.0
new: 37.0
path: .metrics.loc.ploc
old: 221.0
new: 106.0
path: .metrics.loc.sloc
old: 394.0
new: 144.0
path: .metrics.mi.mi_visual_studio
old: 8.311797606283392
new: 24.425109664752977
path: .metrics.mi.mi_sei
old: -10.440359769745363
new: 2.9562373596005056
path: .metrics.mi.mi_original
old: 14.2131739067446
new: 41.76693752672759
path: .metrics.cognitive.sum
old: 38.0
new: 13.0
path: .metrics.cognitive.average
old: 3.4545454545454546
new: 1.0

# Spaces Data

## Minimal test - lines (15, 15)

path: .spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 16.0
new: 11.60964047443681
path: .spaces[0].spaces[0].metrics.halstead.level
old: 0.5
new: 0.4
path: .spaces[0].spaces[0].metrics.halstead.n1
old: 4.0
new: 5.0
path: .spaces[0].spaces[0].metrics.halstead.N1
old: 8.0
new: 5.0
path: .spaces[0].spaces[0].metrics.halstead.bugs
old: 0.0057689982812296325
new: 0.00381864321284214
path: .spaces[0].spaces[0].metrics.halstead.effort
old: 72.0
new: 38.77443751081734
path: .spaces[0].spaces[0].metrics.halstead.vocabulary
old: 8.0
new: 6.0
path: .spaces[0].spaces[0].metrics.halstead.N2
old: 4.0
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 1.3333333333333333
new: 1.9349400790728015
path: .spaces[0].spaces[0].metrics.halstead.difficulty
old: 2.0
new: 2.5
path: .spaces[0].spaces[0].metrics.halstead.length
old: 12.0
new: 6.0
path: .spaces[0].spaces[0].metrics.halstead.n2
old: 4.0
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.volume
old: 36.0
new: 15.509775004326936
path: .spaces[0].spaces[0].metrics.halstead.time
old: 4.0
new: 2.1541354172676304
path: .spaces[0].spaces[0].metrics.loc.sloc
old: 5.0
new: 1.0
path: .spaces[0].spaces[0].metrics.loc.ploc
old: 5.0
new: 1.0
path: .spaces[0].spaces[0].metrics.nexits.average
old: null
new: 0.0
path: .spaces[0].spaces[0].metrics.nargs.average
old: null
new: 0.0
path: .spaces[0].spaces[0].metrics.cognitive.average
old: null
new: 0.0
path: .spaces[0].spaces[0].metrics.nom.total
old: 0.0
new: 1.0
path: .spaces[0].spaces[0].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[0].spaces[0].metrics.mi.mi_original
old: 126.06280733859585
new: 156.51435355291963
path: .spaces[0].spaces[0].metrics.mi.mi_sei
old: 106.27115485532474
new: 150.2034495661308
path: .spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 73.72093996409113
new: 91.5288617268536

### Code

      ~nsINIParserImpl() = default;

## Minimal test - lines (32, 46)

path: .spaces[1].metrics.mi.mi_original
old: 21.19045659924008
new: 97.10604391112965
path: .spaces[1].metrics.mi.mi_sei
old: -1.062951393906488
new: 64.69901557713328
path: .spaces[1].metrics.mi.mi_visual_studio
old: 12.392079882596535
new: 56.78716018194716
path: .spaces[1].metrics.nom.total
old: 8.0
new: 1.0
path: .spaces[1].metrics.nom.functions
old: 8.0
new: 1.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: 1147.4413809742164
new: 111.90632784293425
path: .spaces[1].metrics.halstead.time
old: 16654.530214889146
new: 175.31913635749277
path: .spaces[1].metrics.halstead.bugs
old: 1.4930763161116474
new: 0.07171554399480354
path: .spaces[1].metrics.halstead.volume
old: 6794.752903635483
new: 281.76289771739914
path: .spaces[1].metrics.halstead.vocabulary
old: 171.0
new: 29.0
path: .spaces[1].metrics.halstead.N2
old: 369.0
new: 24.0
path: .spaces[1].metrics.halstead.n2
old: 138.0
new: 15.0
path: .spaces[1].metrics.halstead.purity_ratio
old: 1.2526652630722883
new: 1.9294194455678315
path: .spaces[1].metrics.halstead.N1
old: 547.0
new: 34.0
path: .spaces[1].metrics.halstead.effort
old: 299781.54386800464
new: 3155.74445443487
path: .spaces[1].metrics.halstead.length
old: 916.0
new: 58.0
path: .spaces[1].metrics.halstead.level
old: 0.022665681202266568
new: 0.08928571428571429
path: .spaces[1].metrics.halstead.difficulty
old: 44.119565217391305
new: 11.2
path: .spaces[1].metrics.halstead.n1
old: 33.0
new: 14.0
path: .spaces[1].metrics.loc.sloc
old: 318.0
new: 15.0
path: .spaces[1].metrics.loc.lloc
old: 67.0
new: 6.0
path: .spaces[1].metrics.loc.blank
old: 32.0
new: 3.0
path: .spaces[1].metrics.loc.cloc
old: 109.0
new: 0.0
path: .spaces[1].metrics.loc.ploc
old: 177.0
new: 12.0
path: .spaces[1].metrics.nargs.average
old: 1.25
new: 2.0
path: .spaces[1].metrics.nargs.sum
old: 10.0
new: 2.0
path: .spaces[1].metrics.nexits.sum
old: 9.0
new: 2.0
path: .spaces[1].metrics.nexits.average
old: 1.125
new: 2.0
path: .spaces[1].metrics.cyclomatic.average
old: 3.5384615384615383
new: 3.0
path: .spaces[1].metrics.cyclomatic.sum
old: 46.0
new: 3.0
path: .spaces[1].metrics.cognitive.sum
old: 34.0
new: 3.0
path: .spaces[1].metrics.cognitive.average
old: 4.25
new: 3.0

### Code

    nsINIParserFactory::CreateINIParser(nsIFile* aINIFile, nsIINIParser** aResult) {
      *aResult = nullptr;

      RefPtr p(new nsINIParserImpl());

      if (aINIFile) {
        nsresult rv = p->Init(aINIFile);
        if (NS_FAILED(rv)) {
          return rv;
        }
      }

      p.forget(aResult);
      return NS_OK;
    }

## Minimal test - lines (20, 22)

path: .spaces[0].spaces[1].metrics.halstead.N1
old: 14.0
new: 7.0
path: .spaces[0].spaces[1].metrics.halstead.N2
old: 9.0
new: 8.0
path: .spaces[0].spaces[1].metrics.halstead.length
old: 23.0
new: 15.0
path: .spaces[0].spaces[1].metrics.halstead.n2
old: 8.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.time
old: 33.585176903163344
new: 11.949875002403854
path: .spaces[0].spaces[1].metrics.halstead.purity_ratio
old: 2.6979890350004463
new: 2.067970000576925
path: .spaces[0].spaces[1].metrics.halstead.bugs
old: 0.023831909562642074
new: 0.011966560027609794
path: .spaces[0].spaces[1].metrics.halstead.estimated_program_length
old: 62.05374780501027
new: 31.019550008653873
path: .spaces[0].spaces[1].metrics.halstead.n1
old: 11.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.vocabulary
old: 19.0
new: 12.0
path: .spaces[0].spaces[1].metrics.halstead.volume
old: 97.70233280920246
new: 53.77443751081734
path: .spaces[0].spaces[1].metrics.halstead.difficulty
old: 6.1875
new: 4.0
path: .spaces[0].spaces[1].metrics.halstead.level
old: 0.16161616161616163
new: 0.25
path: .spaces[0].spaces[1].metrics.halstead.effort
old: 604.5331842569402
new: 215.09775004326937
path: .spaces[0].spaces[1].metrics.loc.ploc
old: 3.0
new: 2.0
path: .spaces[0].spaces[1].metrics.loc.sloc
old: 4.0
new: 3.0
path: .spaces[0].spaces[1].metrics.loc.blank
old: 0.0
new: 1.0
path: .spaces[0].spaces[1].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.mi.mi_original
old: 124.48601908248672
new: 132.2515302053208
path: .spaces[0].spaces[1].metrics.mi.mi_sei
old: 138.9677237808766
new: 115.19959464458498
path: .spaces[0].spaces[1].metrics.mi.mi_visual_studio
old: 72.79884156870568
new: 77.34007614346245

### Code

      NS_DECL_NSIINIPARSERWRITER

      nsresult Init(nsIFile* aINIFile) { return mParser.Init(aINIFile); }

## Minimal test - lines (14, 27)

path: .spaces[0].metrics.mi.mi_original
old: 72.26322048109878
new: 99.95662473800635
path: .spaces[0].metrics.mi.mi_visual_studio
old: 42.25919326380046
new: 58.45416651345401
path: .spaces[0].metrics.mi.mi_sei
old: 68.66548880743018
new: 68.8115343997215
path: .spaces[0].metrics.nargs.sum
old: 2.0
new: 1.0
path: .spaces[0].metrics.nargs.average
old: 0.6666666666666666
new: 0.5
path: .spaces[0].metrics.nexits.average
old: 1.0
new: 0.5
path: .spaces[0].metrics.nexits.sum
old: 3.0
new: 1.0
path: .spaces[0].metrics.cyclomatic.average
old: 1.8333333333333333
new: 1.0
path: .spaces[0].metrics.cyclomatic.sum
old: 11.0
new: 3.0
path: .spaces[0].metrics.nom.functions
old: 3.0
new: 2.0
path: .spaces[0].metrics.nom.total
old: 3.0
new: 2.0
path: .spaces[0].metrics.halstead.length
old: 110.0
new: 42.0
path: .spaces[0].metrics.halstead.vocabulary
old: 52.0
new: 28.0
path: .spaces[0].metrics.halstead.n1
old: 18.0
new: 13.0
path: .spaces[0].metrics.halstead.effort
old: 6971.302455303135
new: 1662.3833320475192
path: .spaces[0].metrics.halstead.purity_ratio
old: 2.254839878440665
new: 2.540692268332428
path: .spaces[0].metrics.halstead.level
old: 0.08994708994708996
new: 0.12145748987854252
path: .spaces[0].metrics.halstead.volume
old: 627.04836899552
new: 201.90890672641936
path: .spaces[0].metrics.halstead.bugs
old: 0.12164325391178152
new: 0.04677705354906297
path: .spaces[0].metrics.halstead.difficulty
old: 11.117647058823527
new: 8.233333333333333
path: .spaces[0].metrics.halstead.n2
old: 34.0
new: 15.0
path: .spaces[0].metrics.halstead.N1
old: 68.0
new: 23.0
path: .spaces[0].metrics.halstead.time
old: 387.29458085017416
new: 92.35462955819553
path: .spaces[0].metrics.halstead.N2
old: 42.0
new: 19.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 248.03238662847315
new: 106.70907526996196
path: .spaces[0].metrics.loc.lloc
old: 6.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 48.0
new: 14.0
path: .spaces[0].metrics.loc.ploc
old: 25.0
new: 11.0
path: .spaces[0].metrics.loc.blank
old: 7.0
new: 3.0
path: .spaces[0].metrics.loc.cloc
old: 16.0
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 4.0
new: 0.0
path: .spaces[0].metrics.cognitive.average
old: 1.3333333333333333
new: 0.0

### Code

    class nsINIParserImpl final : public nsIINIParser, public nsIINIParserWriter {
      ~nsINIParserImpl() = default;

     public:
      NS_DECL_ISUPPORTS
      NS_DECL_NSIINIPARSER
      NS_DECL_NSIINIPARSERWRITER

      nsresult Init(nsIFile* aINIFile) { return mParser.Init(aINIFile); }

     private:
      nsINIParser mParser;
      bool ContainsNull(const nsACString& aStr);
    };