# Global Metrics

path: .metrics.nargs.average
old: 1.0
new: 0.0
path: .metrics.nargs.sum
old: 4.0
new: 0.0
path: .metrics.cyclomatic.sum
old: 6.0
new: 4.0
path: .metrics.nexits.sum
old: 1.0
new: 0.0
path: .metrics.nexits.average
old: 0.25
new: 0.0
path: .metrics.halstead.vocabulary
old: 31.0
new: 49.0
path: .metrics.halstead.N2
old: 29.0
new: 51.0
path: .metrics.halstead.effort
old: 3175.900582132217
new: 7643.023775301828
path: .metrics.halstead.level
old: 0.10919540229885058
new: 0.08888888888888889
path: .metrics.halstead.n2
old: 19.0
new: 34.0
path: .metrics.halstead.N1
old: 41.0
new: 70.0
path: .metrics.halstead.time
old: 176.43892122956763
new: 424.6124319612127
path: .metrics.halstead.length
old: 70.0
new: 121.0
path: .metrics.halstead.difficulty
old: 9.157894736842104
new: 11.25
path: .metrics.halstead.n1
old: 12.0
new: 15.0
path: .metrics.halstead.bugs
old: 0.07202059050346224
new: 0.12933683197942578
path: .metrics.halstead.estimated_program_length
old: 123.730172764082
new: 231.57709553663932
path: .metrics.halstead.volume
old: 346.7937417270812
new: 679.3798911379403
path: .metrics.halstead.purity_ratio
old: 1.7675738966297427
new: 1.913860293691234
path: .metrics.loc.lloc
old: 5.0
new: 0.0
path: .metrics.loc.cloc
old: 7.0
new: 5.0
path: .metrics.loc.ploc
old: 19.0
new: 30.0
path: .metrics.loc.sloc
old: 33.0
new: 42.0
path: .metrics.mi.mi_visual_studio
old: 48.28256167811624
new: 44.22199637763917
path: .metrics.mi.mi_original
old: 82.56318046957877
new: 75.61961380576298
path: .metrics.mi.mi_sei
old: 76.74798956570592
new: 59.27397873369017
path: .metrics.nom.functions
old: 4.0
new: 2.0
path: .metrics.nom.total
old: 4.0
new: 2.0

# Spaces Data

## Minimal test - lines (32, 32)

path: .spaces[0].spaces[1].metrics.loc.sloc
old: 4.0
new: 1.0
path: .spaces[0].spaces[1].metrics.loc.ploc
old: 4.0
new: 1.0
path: .spaces[0].spaces[1].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.halstead.length
old: 18.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.N1
old: 11.0
new: 5.0
path: .spaces[0].spaces[1].metrics.halstead.N2
old: 7.0
new: 1.0
path: .spaces[0].spaces[1].metrics.halstead.volume
old: 70.32403072095333
new: 15.509775004326936
path: .spaces[0].spaces[1].metrics.halstead.difficulty
old: 5.25
new: 2.5
path: .spaces[0].spaces[1].metrics.halstead.bugs
old: 0.017154870772614794
new: 0.00381864321284214
path: .spaces[0].spaces[1].metrics.halstead.purity_ratio
old: 2.446616667628208
new: 1.9349400790728015
path: .spaces[0].spaces[1].metrics.halstead.estimated_program_length
old: 44.039100017307746
new: 11.60964047443681
path: .spaces[0].spaces[1].metrics.halstead.effort
old: 369.201161285005
new: 38.77443751081734
path: .spaces[0].spaces[1].metrics.halstead.n2
old: 6.0
new: 1.0
path: .spaces[0].spaces[1].metrics.halstead.time
old: 20.511175626944723
new: 2.1541354172676304
path: .spaces[0].spaces[1].metrics.halstead.vocabulary
old: 15.0
new: 6.0
path: .spaces[0].spaces[1].metrics.halstead.n1
old: 9.0
new: 5.0
path: .spaces[0].spaces[1].metrics.halstead.level
old: 0.1904761904761905
new: 0.4
path: .spaces[0].spaces[1].metrics.mi.mi_visual_studio
old: 73.79873729732505
new: 91.5288617268536
path: .spaces[0].spaces[1].metrics.mi.mi_original
old: 126.19584077842585
new: 156.51435355291963
path: .spaces[0].spaces[1].metrics.mi.mi_sei
old: 106.46308153923984
new: 150.2034495661308
path: .spaces[0].spaces[1].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[1].metrics.nargs.sum
old: 1.0
new: 0.0

### Code

      ~nsPrinterWin() = default;

## Minimal test - lines (24, 24)

path: .spaces[0].spaces[0].metrics.mi.mi_sei
old: 109.81693134142208
new: 152.37629276875444
path: .spaces[0].spaces[0].metrics.mi.mi_visual_studio
old: 75.15821772680114
new: 92.40962204246613
path: .spaces[0].spaces[0].metrics.mi.mi_original
old: 128.52055231282995
new: 158.02045369261705
path: .spaces[0].spaces[0].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].spaces[0].metrics.loc.ploc
old: 4.0
new: 1.0
path: .spaces[0].spaces[0].metrics.loc.sloc
old: 4.0
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.volume
old: 44.97261104228487
new: 11.60964047443681
path: .spaces[0].spaces[0].metrics.halstead.length
old: 13.0
new: 5.0
path: .spaces[0].spaces[0].metrics.halstead.n2
old: 5.0
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.vocabulary
old: 11.0
new: 5.0
path: .spaces[0].spaces[0].metrics.halstead.level
old: 0.2777777777777778
new: 0.5
path: .spaces[0].spaces[0].metrics.halstead.N1
old: 7.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.n1
old: 6.0
new: 4.0
path: .spaces[0].spaces[0].metrics.halstead.purity_ratio
old: 2.0861088829818266
new: 1.6
path: .spaces[0].spaces[0].metrics.halstead.bugs
old: 0.00990176194569736
new: 0.002712967490108627
path: .spaces[0].spaces[0].metrics.halstead.effort
old: 161.90139975222553
new: 23.21928094887362
path: .spaces[0].spaces[0].metrics.halstead.N2
old: 6.0
new: 1.0
path: .spaces[0].spaces[0].metrics.halstead.difficulty
old: 3.6
new: 2.0
path: .spaces[0].spaces[0].metrics.halstead.time
old: 8.994522208456974
new: 1.289960052715201
path: .spaces[0].spaces[0].metrics.halstead.estimated_program_length
old: 27.11941547876375
new: 8.0

### Code

      nsPrinterWin() = delete;

## Minimal test - lines (13, 40)

path: .spaces[0].metrics.halstead.n2
old: 18.0
new: 30.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 118.07820003461548
new: 205.81007680238335
path: .spaces[0].metrics.halstead.N2
old: 28.0
new: 46.0
path: .spaces[0].metrics.halstead.n1
old: 12.0
new: 15.0
path: .spaces[0].metrics.halstead.difficulty
old: 9.333333333333334
new: 11.5
path: .spaces[0].metrics.halstead.volume
old: 338.57545109698776
new: 631.5631060779126
path: .spaces[0].metrics.halstead.length
old: 69.0
new: 115.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.711278261371239
new: 1.7896528417598552
path: .spaces[0].metrics.halstead.N1
old: 41.0
new: 69.0
path: .spaces[0].metrics.halstead.time
old: 175.55764130954924
new: 403.49865110533307
path: .spaces[0].metrics.halstead.level
old: 0.10714285714285714
new: 0.08695652173913043
path: .spaces[0].metrics.halstead.bugs
old: 0.07178057069184816
new: 0.1250129893131273
path: .spaces[0].metrics.halstead.effort
old: 3160.037543571886
new: 7262.975719895995
path: .spaces[0].metrics.halstead.vocabulary
old: 30.0
new: 45.0
path: .spaces[0].metrics.loc.ploc
old: 18.0
new: 24.0
path: .spaces[0].metrics.loc.blank
old: 6.0
new: 4.0
path: .spaces[0].metrics.loc.lloc
old: 5.0
new: 0.0
path: .spaces[0].metrics.loc.sloc
old: 25.0
new: 28.0
path: .spaces[0].metrics.loc.cloc
old: 1.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[0].metrics.nargs.sum
old: 4.0
new: 0.0
path: .spaces[0].metrics.nom.functions
old: 4.0
new: 2.0
path: .spaces[0].metrics.nom.total
old: 4.0
new: 2.0
path: .spaces[0].metrics.nexits.average
old: 0.25
new: 0.0
path: .spaces[0].metrics.nexits.sum
old: 1.0
new: 0.0
path: .spaces[0].metrics.mi.mi_sei
old: 66.1674447179647
new: 44.05637821678579
path: .spaces[0].metrics.mi.mi_original
old: 87.41552741455673
new: 82.79765802548336
path: .spaces[0].metrics.mi.mi_visual_studio
old: 51.12019147050101
new: 48.41968305583822
path: .spaces[0].metrics.cyclomatic.sum
old: 5.0
new: 3.0

### Code

    class nsPrinterWin final : public nsPrinterBase {
     public:
      NS_IMETHOD GetName(nsAString& aName) override;
      NS_IMETHOD GetSystemName(nsAString& aName) override;
      bool SupportsDuplex() const final;
      bool SupportsColor() const final;
      bool SupportsMonochrome() const final;
      bool SupportsCollation() const final;
      PrinterInfo CreatePrinterInfo() const final;
      MarginDouble GetMarginsForPaper(nsString aPaperId) const final;

      nsPrinterWin() = delete;
      static already_AddRefed Create(
          const mozilla::CommonPaperInfoArray* aPaperInfoArray,
          const nsAString& aName);

     private:
      nsPrinterWin(const mozilla::CommonPaperInfoArray* aPaperInfoArray,
                   const nsAString& aName);
      ~nsPrinterWin() = default;

      nsTArray CopyDefaultDevmodeW() const;
      nsTArray PaperList() const;
      PrintSettingsInitializer DefaultSettings() const;

      const nsString mName;
      mutable mozilla::DataMutex> mDefaultDevmodeWStorage;
    };