# Global Metrics

path: .metrics.halstead.n2
old: 14.0
new: 83.0
path: .metrics.halstead.vocabulary
old: 23.0
new: 103.0
path: .metrics.halstead.purity_ratio
old: 2.211683619507764
new: 1.1420534966596327
path: .metrics.halstead.time
old: 41.84294809352737
new: 5451.869981380833
path: .metrics.halstead.n1
old: 9.0
new: 20.0
path: .metrics.halstead.volume
old: 167.37179237410948
new: 3604.0237841517546
path: .metrics.halstead.difficulty
old: 4.5
new: 27.228915662650603
path: .metrics.halstead.effort
old: 753.1730656834926
new: 98133.659664855
path: .metrics.halstead.N2
old: 14.0
new: 226.0
path: .metrics.halstead.bugs
old: 0.02759361491215514
new: 0.7091815176614946
path: .metrics.halstead.estimated_program_length
old: 81.83229392178727
new: 615.566834699542
path: .metrics.halstead.length
old: 37.0
new: 539.0
path: .metrics.halstead.level
old: 0.2222222222222222
new: 0.036725663716814155
path: .metrics.halstead.N1
old: 23.0
new: 313.0
path: .metrics.cyclomatic.average
old: 1.5
new: 1.0666666666666669
path: .metrics.cyclomatic.sum
old: 3.0
new: 16.0
path: .metrics.mi.mi_original
old: 92.20039622285586
new: 43.66907750965386
path: .metrics.mi.mi_sei
old: 73.17084163027158
new: -11.070572678167965
path: .metrics.mi.mi_visual_studio
old: 53.91836036424319
new: 25.537472227867756
path: .metrics.nargs.sum
old: 1.0
new: 23.0
path: .metrics.nom.total
old: 1.0
new: 23.0
path: .metrics.nom.closures
old: 0.0
new: 10.0
path: .metrics.nom.functions
old: 1.0
new: 13.0
path: .metrics.cognitive.average
old: 2.0
new: 0.043478260869565216
path: .metrics.cognitive.sum
old: 2.0
new: 1.0
path: .metrics.loc.lloc
old: 5.0
new: 45.0
path: .metrics.loc.blank
old: 4.0
new: 29.0
path: .metrics.loc.ploc
old: 19.0
new: 120.0
path: .metrics.loc.cloc
old: 1.0
new: 0.0
path: .metrics.loc.sloc
old: 24.0
new: 149.0
path: .metrics.nexits.sum
old: 2.0
new: 8.0
path: .metrics.nexits.average
old: 2.0
new: 0.34782608695652173

# Spaces Data

## Minimal test - lines (16, 31)

path: .spaces[0].metrics.mi.mi_visual_studio
old: 59.417663785304846
new: 55.68940073431815
path: .spaces[0].metrics.mi.mi_sei
old: 71.08667051889284
new: 61.78719394820075
path: .spaces[0].metrics.mi.mi_original
old: 101.60420507287128
new: 95.22887525568404
path: .spaces[0].metrics.halstead.time
old: 38.43277744931416
new: 180.1271400419945
path: .spaces[0].metrics.halstead.level
old: 0.2222222222222222
new: 0.11140583554376658
path: .spaces[0].metrics.halstead.effort
old: 691.7899940876548
new: 3242.2885207559007
path: .spaces[0].metrics.halstead.n1
old: 9.0
new: 13.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 2.0442535720467054
new: 1.976681439636453
path: .spaces[0].metrics.halstead.bugs
old: 0.026073235624851927
new: 0.07302078840964026
path: .spaces[0].metrics.halstead.estimated_program_length
old: 71.54887502163469
new: 140.34438221418816
path: .spaces[0].metrics.halstead.vocabulary
old: 21.0
new: 34.0
path: .spaces[0].metrics.halstead.N1
old: 23.0
new: 42.0
path: .spaces[0].metrics.halstead.length
old: 35.0
new: 71.0
path: .spaces[0].metrics.halstead.n2
old: 12.0
new: 21.0
path: .spaces[0].metrics.halstead.volume
old: 153.73110979725664
new: 361.20986172877406
path: .spaces[0].metrics.halstead.difficulty
old: 4.5
new: 8.976190476190476
path: .spaces[0].metrics.halstead.N2
old: 12.0
new: 29.0
path: .spaces[0].metrics.nargs.average
old: 1.0
new: 0.6666666666666666
path: .spaces[0].metrics.nargs.sum
old: 1.0
new: 2.0
path: .spaces[0].metrics.loc.ploc
old: 14.0
new: 13.0
path: .spaces[0].metrics.loc.sloc
old: 14.0
new: 16.0
path: .spaces[0].metrics.loc.lloc
old: 5.0
new: 7.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 3.0
path: .spaces[0].metrics.cognitive.average
old: 2.0
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 2.0
new: 0.0
path: .spaces[0].metrics.nom.closures
old: 0.0
new: 2.0
path: .spaces[0].metrics.nom.total
old: 1.0
new: 3.0
path: .spaces[0].metrics.nexits.sum
old: 2.0
new: 1.0
path: .spaces[0].metrics.nexits.average
old: 2.0
new: 0.3333333333333333
path: .spaces[0].metrics.cyclomatic.average
old: 2.0
new: 1.0
path: .spaces[0].metrics.cyclomatic.sum
old: 2.0
new: 1.0

### Code

    TEST(TestInputStreamLengthHelper, NonLengthStream)
    {
      nsCString buf;
      buf.AssignLiteral("Hello world");

      nsCOMPtr stream;
      NS_NewCStringInputStream(getter_AddRefs(stream), buf);

      bool called = false;
      InputStreamLengthHelper::GetAsyncLength(stream, [&](int64_t aLength) {
        ASSERT_EQ(buf.Length(), aLength);
        called = true;
      });

      MOZ_ALWAYS_TRUE(SpinEventLoopUntil([&]() { return called; }));
    }