# Global Metrics

path: .metrics.cognitive.sum
old: 0.0
new: 3.0
path: .metrics.cognitive.average
old: 0.0
new: 1.5
path: .metrics.halstead.bugs
old: 0.1645670558724317
new: 0.06725899726533444
path: .metrics.halstead.estimated_program_length
old: 168.0419249893113
new: 154.1501525493784
path: .metrics.halstead.N1
old: 66.0
new: 37.0
path: .metrics.halstead.N2
old: 51.0
new: 35.0
path: .metrics.halstead.level
old: 0.05637254901960784
new: 0.12987012987012986
path: .metrics.halstead.difficulty
old: 17.73913043478261
new: 7.7
path: .metrics.halstead.purity_ratio
old: 1.4362557691394129
new: 2.140974340963589
path: .metrics.halstead.effort
old: 10969.737405200362
new: 2866.2064207996177
path: .metrics.halstead.n2
old: 23.0
new: 25.0
path: .metrics.halstead.length
old: 117.0
new: 72.0
path: .metrics.halstead.time
old: 609.4298558444646
new: 159.2336900444232
path: .metrics.halstead.n1
old: 16.0
new: 11.0
path: .metrics.halstead.vocabulary
old: 39.0
new: 36.0
path: .metrics.halstead.volume
old: 618.3920596068831
new: 372.2346001038465
path: .metrics.mi.mi_original
old: 73.48497156063762
new: 73.06693208076906
path: .metrics.mi.mi_sei
old: 61.33411954160364
new: 67.27002906782153
path: .metrics.mi.mi_visual_studio
old: 42.97366757932024
new: 42.72920004723337
path: .metrics.loc.blank
old: 12.0
new: 13.0
path: .metrics.loc.cloc
old: 8.0
new: 15.0
path: .metrics.loc.lloc
old: 4.0
new: 2.0
path: .metrics.loc.sloc
old: 46.0
new: 54.0
path: .metrics.nargs.average
old: 0.6
new: 1.5
path: .metrics.cyclomatic.sum
old: 9.0
new: 11.0
path: .metrics.cyclomatic.average
old: 1.0
new: 2.75
path: .metrics.nexits.average
old: 0.6
new: 0.0
path: .metrics.nexits.sum
old: 3.0
new: 0.0
path: .metrics.nom.total
old: 5.0
new: 2.0
path: .metrics.nom.functions
old: 5.0
new: 2.0

# Spaces Data

## Minimal test - lines (33, 37)

path: .spaces[0].metrics.cognitive.average
old: null
new: 2.0
path: .spaces[0].metrics.cognitive.sum
old: 0.0
new: 2.0
path: .spaces[0].metrics.halstead.vocabulary
old: 1.0
new: 16.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: null
new: 48.18080946738404
path: .spaces[0].metrics.halstead.difficulty
old: 0.0
new: 6.428571428571429
path: .spaces[0].metrics.halstead.n1
old: 0.0
new: 9.0
path: .spaces[0].metrics.halstead.time
old: 0.0
new: 40.0
path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 10.0
path: .spaces[0].metrics.halstead.volume
old: 0.0
new: 112.0
path: .spaces[0].metrics.halstead.effort
old: 0.0
new: 720.0
path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 7.0
path: .spaces[0].metrics.halstead.bugs
old: 0.0
new: 0.026777318003286775
path: .spaces[0].metrics.halstead.purity_ratio
old: null
new: 1.7207431952637156
path: .spaces[0].metrics.halstead.level
old: null
new: 0.15555555555555556
path: .spaces[0].metrics.halstead.N1
old: 0.0
new: 18.0
path: .spaces[0].metrics.halstead.length
old: 1.0
new: 28.0
path: .spaces[0].metrics.loc.ploc
old: 1.0
new: 5.0
path: .spaces[0].metrics.loc.lloc
old: 0.0
new: 2.0
path: .spaces[0].metrics.loc.sloc
old: 1.0
new: 5.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: null
new: 70.00053315077959
path: .spaces[0].metrics.mi.mi_sei
old: null
new: 97.2965192681252
path: .spaces[0].metrics.mi.mi_original
old: null
new: 119.7009116878331
path: .spaces[0].metrics.nargs.average
old: null
new: 3.0
path: .spaces[0].metrics.nargs.sum
old: 0.0
new: 3.0
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[0].metrics.nom.total
old: 0.0
new: 1.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 3.0
path: .spaces[0].metrics.cyclomatic.average
old: 1.0
new: 3.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.0

### Code

    static void CheckFnPtr(void *FnPtr, const char *FnName, bool WarnIfMissing) {
      if (FnPtr == nullptr && WarnIfMissing) {
        Printf("WARNING: Failed to find function \"%s\".\n", FnName);
      }
    }

## Minimal test - lines (39, 52)

path: .spaces[1].metrics.cyclomatic.sum
old: 1.0
new: 2.0
path: .spaces[1].metrics.nexits.average
old: null
new: 0.0
path: .spaces[1].metrics.loc.ploc
old: 1.0
new: 8.0
path: .spaces[1].metrics.loc.blank
old: 0.0
new: 6.0
path: .spaces[1].metrics.loc.sloc
old: 1.0
new: 14.0
path: .spaces[1].metrics.halstead.n2
old: 1.0
new: 8.0
path: .spaces[1].metrics.halstead.level
old: null
new: 0.5
path: .spaces[1].metrics.halstead.time
old: 0.0
new: 6.373266667948722
path: .spaces[1].metrics.halstead.N1
old: 0.0
new: 8.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: null
new: 32.0
path: .spaces[1].metrics.halstead.vocabulary
old: 1.0
new: 12.0
path: .spaces[1].metrics.halstead.N2
old: 1.0
new: 8.0
path: .spaces[1].metrics.halstead.bugs
old: 0.0
new: 0.00786988662087777
path: .spaces[1].metrics.halstead.difficulty
old: 0.0
new: 2.0
path: .spaces[1].metrics.halstead.volume
old: 0.0
new: 57.3594000115385
path: .spaces[1].metrics.halstead.purity_ratio
old: null
new: 2.0
path: .spaces[1].metrics.halstead.effort
old: 0.0
new: 114.718800023077
path: .spaces[1].metrics.halstead.length
old: 1.0
new: 16.0
path: .spaces[1].metrics.halstead.n1
old: 0.0
new: 4.0
path: .spaces[1].metrics.cognitive.average
old: null
new: 0.0
path: .spaces[1].metrics.mi.mi_original
old: null
new: 106.7307202320616
path: .spaces[1].metrics.mi.mi_sei
old: null
new: 78.48266851609881
path: .spaces[1].metrics.mi.mi_visual_studio
old: null
new: 62.41562586670268
path: .spaces[1].metrics.nargs.average
old: null
new: 0.0
path: .spaces[1].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[1].metrics.nom.total
old: 0.0
new: 1.0

### Code

    namespace fuzzer {

    ExternalFunctions::ExternalFunctions() {
    #define EXT_FUNC(NAME, RETURN_TYPE, FUNC_SIG, WARN)                            \
      this->NAME = ::NAME;                                                         \
      CheckFnPtr(reinterpret_cast(reinterpret_cast(::NAME)),    \
                 #NAME, WARN);

    #include "FuzzerExtFunctions.def"

    #undef EXT_FUNC
    }

    } // namespace fuzzer