# Global Metrics

path: .metrics.nom.functions
old: 0.0
new: 1.0
path: .metrics.nom.total
old: 0.0
new: 1.0
path: .metrics.nexits.average
old: null
new: 0.0
path: .metrics.mi.mi_sei
old: 48.42155391042285
new: 66.72840576767032
path: .metrics.mi.mi_visual_studio
old: 30.924939316386737
new: 44.83930894115287
path: .metrics.mi.mi_original
old: 52.88164623102132
new: 76.6752182893714
path: .metrics.cognitive.sum
old: 0.0
new: 8.0
path: .metrics.cognitive.average
old: null
new: 8.0
path: .metrics.cyclomatic.sum
old: 3.0
new: 6.0
path: .metrics.cyclomatic.average
old: 1.0
new: 3.0
path: .metrics.loc.lloc
old: 0.0
new: 12.0
path: .metrics.loc.cloc
old: 124.0
new: 7.0
path: .metrics.loc.blank
old: 21.0
new: 5.0
path: .metrics.loc.sloc
old: 189.0
new: 37.0
path: .metrics.loc.ploc
old: 44.0
new: 25.0
path: .metrics.nargs.average
old: null
new: 2.0
path: .metrics.nargs.sum
old: 0.0
new: 2.0
path: .metrics.halstead.N2
old: 55.0
new: 60.0
path: .metrics.halstead.bugs
old: 0.05538507771184416
new: 0.18349260263131137
path: .metrics.halstead.effort
old: 2141.7611484611066
new: 12915.45537209052
path: .metrics.halstead.estimated_program_length
old: 228.38689879982144
new: 198.6059378176129
path: .metrics.halstead.purity_ratio
old: 2.4296478595725683
new: 1.4391734624464705
path: .metrics.halstead.volume
old: 519.2148238693592
new: 753.4015633719471
path: .metrics.halstead.time
old: 118.98673047006147
new: 717.5252984494733
path: .metrics.halstead.difficulty
old: 4.125
new: 17.142857142857142
path: .metrics.halstead.length
old: 94.0
new: 138.0
path: .metrics.halstead.vocabulary
old: 46.0
new: 44.0
path: .metrics.halstead.N1
old: 39.0
new: 78.0
path: .metrics.halstead.level
old: 0.24242424242424243
new: 0.058333333333333334
path: .metrics.halstead.n1
old: 6.0
new: 16.0
path: .metrics.halstead.n2
old: 40.0
new: 28.0

# Spaces Data

## Minimal test - lines (10, 37)

path: .spaces[0].metrics.cyclomatic.average
old: 1.0
new: 5.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 5.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 0.0
new: 8.0
path: .spaces[0].metrics.cognitive.average
old: null
new: 8.0
path: .spaces[0].metrics.loc.ploc
old: 14.0
new: 24.0
path: .spaces[0].metrics.loc.sloc
old: 50.0
new: 28.0
path: .spaces[0].metrics.loc.blank
old: 5.0
new: 2.0
path: .spaces[0].metrics.loc.lloc
old: 0.0
new: 12.0
path: .spaces[0].metrics.loc.cloc
old: 31.0
new: 2.0
path: .spaces[0].metrics.halstead.bugs
old: 0.012504470524880332
new: 0.1842518821313734
path: .spaces[0].metrics.halstead.length
old: 29.0
new: 137.0
path: .spaces[0].metrics.halstead.level
old: 0.5263157894736842
new: 0.057203389830508475
path: .spaces[0].metrics.halstead.N1
old: 10.0
new: 78.0
path: .spaces[0].metrics.halstead.n2
old: 15.0
new: 27.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 63.35824643629125
new: 192.38196255841365
path: .spaces[0].metrics.halstead.purity_ratio
old: 2.1847671184928017
new: 1.404247901886231
path: .spaces[0].metrics.halstead.volume
old: 120.92782504182703
new: 743.3982713941874
path: .spaces[0].metrics.halstead.effort
old: 229.7628675794714
new: 12995.703114742832
path: .spaces[0].metrics.halstead.time
old: 12.764603754415075
new: 721.9835063746018
path: .spaces[0].metrics.halstead.n1
old: 3.0
new: 16.0
path: .spaces[0].metrics.halstead.vocabulary
old: 18.0
new: 43.0
path: .spaces[0].metrics.halstead.N2
old: 19.0
new: 59.0
path: .spaces[0].metrics.halstead.difficulty
old: 1.9
new: 17.48148148148148
path: .spaces[0].metrics.nom.total
old: 0.0
new: 1.0
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 48.2223503708427
new: 47.65490110274387
path: .spaces[0].metrics.mi.mi_sei
old: 90.31806731008388
new: 62.48882558181401
path: .spaces[0].metrics.mi.mi_original
old: 82.46021913414101
new: 81.48988088569202
path: .spaces[0].metrics.nargs.average
old: null
new: 2.0
path: .spaces[0].metrics.nargs.sum
old: 0.0
new: 2.0

### Code

    void main(int argc, char* argv[]) {
      nsIServiceManager* servMgr;
      nsresult rv = NS_InitXPCOM(&servMgr, nullptr, nullptr);
      MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv), "NS_InitXPCOM failed");

      // try loading a component and releasing it to see if it leaks
      if (argc > 1 && argv[1] != nullptr) {
        char* cidStr = argv[1];
        nsISupports* obj = nullptr;
        if (cidStr[0] == '{') {
          nsCID cid;
          cid.Parse(cidStr);
          rv = CallCreateInstance(cid, &obj);
        } else {
          // contractID case:
          rv = CallCreateInstance(cidStr, &obj);
        }
        if (NS_SUCCEEDED(rv)) {
          printf("Successfully created %s\n", cidStr);
          NS_RELEASE(obj);
        } else {
          printf("Failed to create %s (%x)\n", cidStr, rv);
        }
      }

      rv = NS_ShutdownXPCOM(servMgr);
      MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv), "NS_ShutdownXPCOM failed");
    }