# Global Metrics

path: .metrics.loc.lloc
old: 1006.0
new: 0.0
path: .metrics.loc.blank
old: 381.0
new: 12.0
path: .metrics.loc.sloc
old: 2781.0
new: 79.0
path: .metrics.loc.ploc
old: 2130.0
new: 58.0
path: .metrics.loc.cloc
old: 270.0
new: 9.0
path: .metrics.cyclomatic.average
old: 2.0828729281767955
new: 1.0
path: .metrics.cyclomatic.sum
old: 377.0
new: 9.0
path: .metrics.nom.functions
old: 178.0
new: 0.0
path: .metrics.nom.total
old: 178.0
new: 0.0
path: .metrics.cognitive.sum
old: 199.0
new: 0.0
path: .metrics.cognitive.average
old: 1.1179775280898876
new: null
path: .metrics.nargs.average
old: 3.303370786516854
new: null
path: .metrics.nargs.sum
old: 588.0
new: 0.0
path: .metrics.nexits.sum
old: 42.0
new: 0.0
path: .metrics.nexits.average
old: 0.23595505617977527
new: null
path: .metrics.halstead.purity_ratio
old: 0.5599246679311488
new: 1.7585530342706417
path: .metrics.halstead.bugs
old: 24.22361192098492
new: 0.20075892964337175
path: .metrics.halstead.n1
old: 39.0
new: 12.0
path: .metrics.halstead.estimated_program_length
old: 7567.381887089476
new: 397.432985745165
path: .metrics.halstead.time
old: 1088347.8589716172
new: 821.1484629697335
path: .metrics.halstead.N1
old: 7603.0
new: 120.0
path: .metrics.halstead.N2
old: 5912.0
new: 106.0
path: .metrics.halstead.difficulty
old: 150.109375
new: 10.6
path: .metrics.halstead.level
old: 0.006661809097533049
new: 0.09433962264150944
path: .metrics.halstead.effort
old: 19590261.461489107
new: 14780.672333455204
path: .metrics.halstead.n2
old: 768.0
new: 60.0
path: .metrics.halstead.volume
old: 130506.5820271992
new: 1394.4030503259626
path: .metrics.halstead.vocabulary
old: 807.0
new: 72.0
path: .metrics.halstead.length
old: 13515.0
new: 226.0
path: .metrics.mi.mi_sei
old: -166.21895717262234
new: 37.46196489841598
path: .metrics.mi.mi_visual_studio
old: 0.0
new: 35.37765616660421
path: .metrics.mi.mi_original
old: -105.43689733419794
new: 60.49579204489319

# Spaces Data

## Minimal test - lines (15, 77)

path: .spaces[0].metrics.halstead.effort
old: 19798773.952228073
new: 14558.614057098652
path: .spaces[0].metrics.halstead.purity_ratio
old: 0.5506321527991378
new: 1.6408833375114098
path: .spaces[0].metrics.halstead.bugs
old: 24.395194034793235
new: 0.1987431188018583
path: .spaces[0].metrics.halstead.vocabulary
old: 795.0
new: 67.0
path: .spaces[0].metrics.halstead.length
old: 13503.0
new: 220.0
path: .spaces[0].metrics.halstead.time
old: 1099931.886234893
new: 808.8118920610362
path: .spaces[0].metrics.halstead.level
old: 0.0065710560625814865
new: 0.09166666666666667
path: .spaces[0].metrics.halstead.volume
old: 130098.85361046872
new: 1334.5396219007098
path: .spaces[0].metrics.halstead.estimated_program_length
old: 7435.185959246758
new: 360.99433425251016
path: .spaces[0].metrics.halstead.difficulty
old: 152.18253968253967
new: 10.909090909090908
path: .spaces[0].metrics.halstead.n1
old: 39.0
new: 12.0
path: .spaces[0].metrics.halstead.N1
old: 7603.0
new: 120.0
path: .spaces[0].metrics.halstead.N2
old: 5900.0
new: 100.0
path: .spaces[0].metrics.halstead.n2
old: 756.0
new: 55.0
path: .spaces[0].metrics.nom.total
old: 178.0
new: 0.0
path: .spaces[0].metrics.nom.functions
old: 178.0
new: 0.0
path: .spaces[0].metrics.cognitive.sum
old: 199.0
new: 0.0
path: .spaces[0].metrics.cognitive.average
old: 1.1179775280898876
new: null
path: .spaces[0].metrics.loc.ploc
old: 2118.0
new: 51.0
path: .spaces[0].metrics.loc.blank
old: 378.0
new: 9.0
path: .spaces[0].metrics.loc.sloc
old: 2759.0
new: 63.0
path: .spaces[0].metrics.loc.cloc
old: 263.0
new: 3.0
path: .spaces[0].metrics.loc.lloc
old: 1006.0
new: 0.0
path: .spaces[0].metrics.cyclomatic.sum
old: 376.0
new: 8.0
path: .spaces[0].metrics.cyclomatic.average
old: 2.088888888888889
new: 1.0
path: .spaces[0].metrics.nargs.sum
old: 588.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 3.303370786516854
new: null
path: .spaces[0].metrics.mi.mi_visual_studio
old: 0.0
new: 37.78961450668774
path: .spaces[0].metrics.mi.mi_sei
old: -165.97506917847127
new: 34.92396419795582
path: .spaces[0].metrics.mi.mi_original
old: -105.06196113718642
new: 64.62024080643603
path: .spaces[0].metrics.nexits.sum
old: 42.0
new: 0.0
path: .spaces[0].metrics.nexits.average
old: 0.23595505617977527
new: null

### Code

    namespace mozilla {
    namespace gfx {
    class DrawTarget;
    }

    namespace widget {

    struct ScrollbarParams {
      bool overlay = false;
      bool rolledOver = false;
      bool small = false;
      bool horizontal = false;
      bool rtl = false;
      bool onDarkBackground = false;
      bool custom = false;
      // Two colors only used when custom is true.
      nscolor trackColor = NS_RGBA(0, 0, 0, 0);
      nscolor faceColor = NS_RGBA(0, 0, 0, 0);
    };

    class ScrollbarDrawingMac final {
     public:
      struct FillRect {
        gfx::Rect mRect;
        nscolor mColor;
      };

      static CSSIntCoord GetScrollbarSize(StyleScrollbarWidth, bool aOverlay);

      static LayoutDeviceIntCoord GetScrollbarSize(StyleScrollbarWidth,
                                                   bool aOverlay, float aDpiRatio);
      static LayoutDeviceIntSize GetMinimumWidgetSize(StyleAppearance aAppearance,
                                                      nsIFrame* aFrame,
                                                      float aDpiRatio);
      static ScrollbarParams ComputeScrollbarParams(nsIFrame* aFrame,
                                                    const ComputedStyle& aStyle,
                                                    bool aIsHorizontal);

      // The caller can draw this rectangle with rounded corners as appropriate.
      struct ThumbRect {
        gfx::Rect mRect;
        nscolor mFillColor;
        nscolor mStrokeColor;
        float mStrokeWidth;
        float mStrokeOutset;
      };

      static ThumbRect GetThumbRect(const gfx::Rect& aRect,
                                    const ScrollbarParams& aParams, float aScale);

      using ScrollbarTrackRects = Array;
      static bool GetScrollbarTrackRects(const gfx::Rect& aRect,
                                         const ScrollbarParams& aParams,
                                         float aScale, ScrollbarTrackRects&);

      using ScrollCornerRects = Array;
      static bool GetScrollCornerRects(const gfx::Rect& aRect,
                                       const ScrollbarParams& aParams,
                                       float aScale, ScrollCornerRects&);
    };

    }  // namespace widget
    }  // namespace mozilla

## Minimal test - lines (16, 18)

path: .spaces[0].spaces[0].metrics.halstead.difficulty
old: 152.35827814569535
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.volume
old: 130055.06815662708
new: 8.0
path: .spaces[0].spaces[0].metrics.halstead.N2
old: 5899.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.effort
old: 19814966.248464752
new: 8.0
path: .spaces[0].spaces[0].metrics.halstead.level
old: 0.006563476643151165
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.time
old: 1100831.4582480418
new: 0.4444444444444444
path: .spaces[0].spaces[0].metrics.halstead.length
old: 13501.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.n1
old: 39.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 7424.181976366021
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.N1
old: 7602.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 0.5498986724217482
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.n2
old: 755.0
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.vocabulary
old: 794.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.bugs
old: 24.408493187753745
new: 0.0013333333333333333
path: .spaces[0].spaces[0].metrics.nargs.average
old: 3.303370786516854
new: null
path: .spaces[0].spaces[0].metrics.nargs.sum
old: 588.0
new: 0.0
path: .spaces[0].spaces[0].metrics.loc.cloc
old: 262.0
new: 0.0
path: .spaces[0].spaces[0].metrics.loc.sloc
old: 2757.0
new: 3.0
path: .spaces[0].spaces[0].metrics.loc.ploc
old: 2116.0
new: 3.0
path: .spaces[0].spaces[0].metrics.loc.blank
old: 379.0
new: 0.0
path: .spaces[0].spaces[0].metrics.loc.lloc
old: 1006.0
new: 0.0
path: .spaces[0].spaces[0].metrics.nom.functions
old: 178.0
new: 0.0
path: .spaces[0].spaces[0].metrics.nom.total
old: 178.0
new: 0.0
path: .spaces[0].spaces[0].metrics.cyclomatic.sum
old: 375.0
new: 2.0
path: .spaces[0].spaces[0].metrics.cyclomatic.average
old: 2.094972067039106
new: 1.0
path: .spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 0.0
new: 82.99964029639851
path: .spaces[0].spaces[0].metrics.mi.mi_sei
old: -165.75831949807855
new: 129.26360748831726
path: .spaces[0].spaces[0].metrics.mi.mi_original
old: -104.81846311151968
new: 141.92938490684145
path: .spaces[0].spaces[0].metrics.cognitive.sum
old: 199.0
new: 0.0
path: .spaces[0].spaces[0].metrics.cognitive.average
old: 1.1179775280898876
new: null
path: .spaces[0].spaces[0].metrics.nexits.average
old: 0.23595505617977527
new: null
path: .spaces[0].spaces[0].metrics.nexits.sum
old: 42.0
new: 0.0

### Code

    namespace gfx {
    class DrawTarget;
    }

## Minimal test - lines (17, 17)

path: .spaces[0].spaces[0].spaces[0].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.nexits.average
old: 1.0
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.mi.mi_original
old: 151.189427438886
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.mi.mi_sei
old: 142.52120506831432
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 88.41486984730174
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.length
old: 13.0
new: 1.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.n1
old: 5.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.vocabulary
old: 10.0
new: 1.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.difficulty
old: 3.5
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.n2
old: 5.0
new: 1.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.N1
old: 6.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.effort
old: 151.14772831737497
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.time
old: 8.397096017631943
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.volume
old: 43.18506523353571
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.N2
old: 7.0
new: 1.0
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 23.21928094887362
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 1.78609853452874
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.level
old: 0.2857142857142857
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.halstead.bugs
old: 0.009458301667417108
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.nargs.average
old: 1.0
new: null
path: .spaces[0].spaces[0].spaces[0].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].spaces[0].metrics.nom.total
old: 1.0
new: 0.0

### Code

    class DrawTarget;