*** METRICS ***
+
+# MModules metrics
+
+ ## project base_simple3
+ `- group base_simple3
+ mnoa: number of ancestor modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnop: number of parent modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnoc: number of child modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnod: number of descendant modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mdit: depth in module tree
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbi: number of introduction in module
+ avg: 7.0
+ max: base_simple3 (7)
+ min: base_simple3 (7)
+ std: 0.0
+ sum: 7
+ mnbr: number of refinement in module
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbcc: number of concrete class in module (intro + redef)
+ avg: 4.0
+ max: base_simple3 (4)
+ min: base_simple3 (4)
+ std: 0.0
+ sum: 4
+ mnbac: number of abstract class in module (intro + redef)
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbic: number of interface in module (intro + redef)
+ avg: 1.0
+ max: base_simple3 (1)
+ min: base_simple3 (1)
+ std: 0.0
+ sum: 1
+
+ ## global metrics
+ mnoa: number of ancestor modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnop: number of parent modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnoc: number of child modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnod: number of descendant modules
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mdit: depth in module tree
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbi: number of introduction in module
+ avg: 7.0
+ max: base_simple3 (7)
+ min: base_simple3 (7)
+ std: 0.0
+ sum: 7
+ mnbr: number of refinement in module
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbcc: number of concrete class in module (intro + redef)
+ avg: 4.0
+ max: base_simple3 (4)
+ min: base_simple3 (4)
+ std: 0.0
+ sum: 4
+ mnbac: number of abstract class in module (intro + redef)
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnbic: number of interface in module (intro + redef)
+ avg: 1.0
+ max: base_simple3 (1)
+ min: base_simple3 (1)
+ std: 0.0
+ sum: 1
+
+# MClasses metrics
+
+ ## project base_simple3
+ `- group base_simple3
+ cnoa: number of ancestor classes
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnop: number of parent classes
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnoc: number of child classes
+ avg: 0.0
+ max: Object (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 6
+ cnod: number of descendant classes
+ avg: 0.0
+ max: Object (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 6
+ cdit: depth in class tree
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnbp: number of accessible properties (inherited + local)
+ avg: 3.0
+ max: C (7)
+ min: Object (1)
+ std: 2.36
+ sum: 24
+ cnba: number of accessible attributes (inherited + local)
+ avg: 0.0
+ max: C (2)
+ min: Object (0)
+ std: 0.845
+ sum: 3
+ cnbip: number of introduced properties
+ avg: 2.0
+ max: C (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 18
+ cnbrp: number of redefined properties
+ avg: 0.0
+ max: A (1)
+ min: Object (0)
+ std: 0.535
+ sum: 2
+ cnbhp: number of inherited properties
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+
+ ## global metrics
+ cnoa: number of ancestor classes
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnop: number of parent classes
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnoc: number of child classes
+ avg: 0.0
+ max: Object (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 6
+ cnod: number of descendant classes
+ avg: 0.0
+ max: Object (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 6
+ cdit: depth in class tree
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnbp: number of accessible properties (inherited + local)
+ avg: 3.0
+ max: C (7)
+ min: Object (1)
+ std: 2.36
+ sum: 24
+ cnba: number of accessible attributes (inherited + local)
+ avg: 0.0
+ max: C (2)
+ min: Object (0)
+ std: 0.845
+ sum: 3
+ cnbip: number of introduced properties
+ avg: 2.0
+ max: C (6)
+ min: Bool (0)
+ std: 2.268
+ sum: 18
+ cnbrp: number of redefined properties
+ avg: 0.0
+ max: A (1)
+ min: Object (0)
+ std: 0.535
+ sum: 2
+ cnbhp: number of inherited properties
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+--- Metrics of refinement usage ---
+Number of modules: 1
+
+Number of classes: 7
+ Number of interface kind: 1 (14.28%)
+ Number of enum kind: 2 (28.57%)
+ Number of class kind: 4 (57.14%)
+
+Number of class definitions: 7
+Number of refined classes: 0 (0.00%)
+Average number of class refinments by classes: 0.00
+Average number of class refinments by refined classes: na
+
+Number of properties: 18
+ Number of MAttribute: 3 (16.66%)
+ Number of MMethod: 15 (83.33%)
+
+Number of property definitions: 20
+Number of redefined properties: 1 (5.55%)
+Average number of property redefinitions by property: 0.11
+Average number of property redefinitions by redefined property: 2.00
+--- Explicit vs. Implicit Self ---
+Total number of self: 5
+Total number of implicit self: 4 (80.00%)
+--- Construction of tables ---
+Number of runtime classes: 6 (excluding interfaces and abstract classes)
+Average number of composing class definition by runtime class: 2.00
+Total size of tables (classes and instances): 23 (not including stuff like info for subtyping or call-next-method)
+Average size of table by runtime class: 3.83
+Values never redefined: 17 (73.91%)
--- Poset metrics ---
## Module importation hierarchy
Number of nodes: 1
Number of edges: 1 (1.00 per node)
-Number of direct edges: 0 (0.0 per node)
+Number of direct edges: 0 (0.00 per node)
Distribution of greaters
population: 1
minimum value: 1
minimum value: 0
maximum value: 0
total value: 0
- average value: 0.0
+ average value: 0.00
distribution:
<=0: sub-population=1 (100.00%); cumulated value=0 (na%)
Distribution of smallers
minimum value: 0
maximum value: 0
total value: 0
- average value: 0.0
- distribution:
- <=0: sub-population=1 (100.00%); cumulated value=0 (na%)
-## Module nesting hierarchy
-Number of nodes: 1
-Number of edges: 1 (1.00 per node)
-Number of direct edges: 0 (0.0 per node)
-Distribution of greaters
- population: 1
- minimum value: 1
- maximum value: 1
- total value: 1
- average value: 1.00
- distribution:
- <=1: sub-population=1 (100.00%); cumulated value=1 (100.00%)
-Distribution of direct greaters
- population: 1
- minimum value: 0
- maximum value: 0
- total value: 0
- average value: 0.0
- distribution:
- <=0: sub-population=1 (100.00%); cumulated value=0 (na%)
-Distribution of smallers
- population: 1
- minimum value: 1
- maximum value: 1
- total value: 1
- average value: 1.00
- distribution:
- <=1: sub-population=1 (100.00%); cumulated value=1 (100.00%)
-Distribution of direct smallers
- population: 1
- minimum value: 0
- maximum value: 0
- total value: 0
- average value: 0.0
+ average value: 0.00
distribution:
<=0: sub-population=1 (100.00%); cumulated value=0 (na%)
## Classdef hierarchy
-Number of nodes: 8
-Number of edges: 22 (2.75 per node)
-Number of direct edges: 7 (0.87 per node)
+Number of nodes: 7
+Number of edges: 13 (1.85 per node)
+Number of direct edges: 6 (0.85 per node)
Distribution of greaters
- population: 8
- minimum value: 2
- maximum value: 3
- total value: 22
- average value: 2.75
+ population: 7
+ minimum value: 1
+ maximum value: 2
+ total value: 13
+ average value: 1.85
distribution:
- <=2: sub-population=2 (25.00%); cumulated value=4 (18.18%)
- <=4: sub-population=6 (75.00%); cumulated value=18 (81.81%)
+ <=1: sub-population=1 (14.28%); cumulated value=1 (7.69%)
+ <=2: sub-population=6 (85.71%); cumulated value=12 (92.30%)
Distribution of direct greaters
- population: 8
+ population: 7
minimum value: 0
maximum value: 1
- total value: 7
- average value: 0.87
+ total value: 6
+ average value: 0.85
distribution:
- <=0: sub-population=1 (12.50%); cumulated value=0 (0.0%)
- <=1: sub-population=7 (87.50%); cumulated value=7 (100.00%)
+ <=0: sub-population=1 (14.28%); cumulated value=0 (0.00%)
+ <=1: sub-population=6 (85.71%); cumulated value=6 (100.00%)
Distribution of smallers
- population: 8
+ population: 7
minimum value: 1
- maximum value: 8
- total value: 22
- average value: 2.75
+ maximum value: 7
+ total value: 13
+ average value: 1.85
distribution:
- <=1: sub-population=6 (75.00%); cumulated value=6 (27.27%)
- <=8: sub-population=2 (25.00%); cumulated value=16 (72.72%)
+ <=1: sub-population=6 (85.71%); cumulated value=6 (46.15%)
+ <=8: sub-population=1 (14.28%); cumulated value=7 (53.84%)
Distribution of direct smallers
- population: 8
+ population: 7
minimum value: 0
maximum value: 6
- total value: 7
- average value: 0.87
+ total value: 6
+ average value: 0.85
distribution:
- <=0: sub-population=6 (75.00%); cumulated value=0 (0.0%)
- <=1: sub-population=1 (12.50%); cumulated value=1 (14.28%)
- <=8: sub-population=1 (12.50%); cumulated value=6 (85.71%)
+ <=0: sub-population=6 (85.71%); cumulated value=0 (0.00%)
+ <=8: sub-population=1 (14.28%); cumulated value=6 (100.00%)
## Class hierarchy
Number of nodes: 7
Number of edges: 13 (1.85 per node)
total value: 6
average value: 0.85
distribution:
- <=0: sub-population=1 (14.28%); cumulated value=0 (0.0%)
+ <=0: sub-population=1 (14.28%); cumulated value=0 (0.00%)
<=1: sub-population=6 (85.71%); cumulated value=6 (100.00%)
Distribution of smallers
population: 7
total value: 6
average value: 0.85
distribution:
- <=0: sub-population=6 (85.71%); cumulated value=0 (0.0%)
+ <=0: sub-population=6 (85.71%); cumulated value=0 (0.00%)
<=8: sub-population=1 (14.28%); cumulated value=6 (100.00%)
---- Global Summary metrics ---
-(NMD) Number of Modules: 1
-(NC) Number of Classes: 4
-(NI) Number of Interfaces: 1
-(NAC) Number of Abstract Classes: 0
-(NGC) Number of Generic Classes: 0
-(NGI) Number of Generic Interfaces: 0
---- (SL) Std-Lib Summary metrics ---
-(NMDSL) Number of Modules: 0
-(NCSL) Number of Classes: 0
-(NISL) Number of Interfaces: 0
-(NACSL) Number of Abstract Classes: 0
-(NGCSL) Number of Generic Classes: 0
-(NGISL) Number of Generic Interfaces: 0
---- (UD) User-Defined Summary metrics ---
-(NMDUD) Number of Modules: 1
-(NCUD) Number of Classes: 4
-(NIUD) Number of Interfaces: 1
-(NACUD) Number of Abstract Classes: 0
-(NGCUD) Number of Generic Classes: 0
-(NGIUD) Number of Generic Interfaces: 0
-
---- Global Inheritance metrics ---
-(DIT) Global Depth in Inheritance Tree: 0.85
-(DUI) Proportion of types inheriting another type other than Object: 0.0%
-(CCDUI) Proportion of classes that extend some other class: 0.0%
-(CIDUI) Proportion of classes that implement some other interface: 0.0%
-(IIDUI) Proportion of interfaces that extend some other interface: 0.0%
-(IF) Proportion of types Inherited From: 20.00%
-(CCIF) Proportion of classes extended by class: 0.0%
-(ICIF) Proportion of interfaces implemented by class: 100.00%
-(IIIF) Proportion of interfaces extended by interface: 100.00%
-
---- (SL -> *) Std-Lib Inheritance metrics ---
-(SLDUI) Proportion of SL types inheriting another type other than Object: na%
-(SLCCDUI) Proportion of SL classes that extend some other class: na%
-(SLCIDUI) Proportion of SL classes that implement some other interface: na%
-(SLIIDUI) Proportion of SL interfaces that extend some other interface: na%
-(SLIF) Proportion of SL types Inherited From: na%
-(SLCCIF) Proportion of SL classes extended by class: na%
-(SLICIF) Proportion of SL interfaces implemented by class: na%
-(SLIIIF) Proportion of SL interfaces extended by interface: na%
-
---- (SL -> SL) Std-Lib Inheritance metrics ---
-(SLIFSL) Proportion of SL types Inherited From by SL type: na%
-(SLCCIFSL) Proportion of SL classes extended by SL class: na%
-(SLICIFSL) Proportion of SL interfaces implemented by SL class: na%
-(SLIIIFSL) Proportion of SL interfaces extended by SL interface: na%
-
---- (SL->UD) Std-Lib Inheritance metrics ---
-(SLIFUD) Proportion of SL types Inherited From by UD type: na%
-(SLCCIFUD) Proportion of SL classes extended by UD class: na%
-(SLICIFUD) Proportion of SL interfaces implemented by UD class: na%
-(SLIIIFUD) Proportion of SL interfaces extended by UD interface: na%
-
---- (UD->*) User-Defined Inheritance metrics ---
-(UDDUI) Proportion of UD types inheriting another type other than Object: 0.0%
-(UDCCDUI) Proportion of UD classes that extend some other class: 0.0%
-(UDCIDUI) Proportion of UD classes that implement some other interface: 0.0%
-(UDIIDUI) Proportion of UD interfaces that extend some other interface: 0.0%
-(UDIF) Proportion of UD types Inherited From: 20.00%
-(UDCCIF) Proportion of UD classes extended by class: 0.0%
-(UDICIF) Proportion of UD interfaces implemented by class: 100.00%
-(UDIIIF) Proportion of UD interfaces extended by interface: 100.00%
-
---- (UD -> SL) User-Defined Inheritance metrics ---
-(UDDUISL) Proportion of UD types inheriting another type other SL type: 0.0%
-(UDCCDUISL) Proportion of UD classes that extend some other SL class: 0.0%
-(UDCIDUISL) Proportion of UD classes that implement some other SL interface: 0.0%
-(UDIIDUISL) Proportion of UD interfaces that extend some other SL interface: 0.0%
-
---- (UD -> UD) User-Defined Inheritance metrics ---
-(UDDUIUD) Proportion of UD types inheriting another type other UD type: 0.0%
-(UDCCDUIUD) Proportion of UD classes that extend some other UD class: 0.0%
-(UDCIDUIUD) Proportion of UD classes that implement some other UD interface: 0.0%
-(UDIIDUIUD) Proportion of UD interfaces that extend some other UD interface: 0.0%
-(UDIFUD) Proportion of UD types Inherited From: 20.00%
-(UDCCIFUD) Proportion of UD classes extended by UD class: 0.0%
-(UDICIFUD) Proportion of UD interfaces implemented by UD class: 100.00%
-(UDIIIFUD) Proportion of UD interfaces extended by UD interface: 100.00%
---- Metrics of refinement usage ---
-Number of modules: 1
-
-Number of classes: 7
- Number of interface kind: 1 (14.28%)
- Number of enum kind: 2 (28.57%)
- Number of class kind: 4 (57.14%)
+--- AST Metrics ---
+## All nodes of the AST
+ population: 50
+ minimum value: 1
+ maximum value: 40
+ total value: 270
+ average value: 5.40
+ distribution:
+ <=1: sub-population=16 (32.00%); cumulated value=16 (5.92%)
+ <=2: sub-population=5 (10.00%); cumulated value=10 (3.70%)
+ <=4: sub-population=9 (18.00%); cumulated value=28 (10.37%)
+ <=8: sub-population=12 (24.00%); cumulated value=76 (28.14%)
+ <=16: sub-population=4 (8.00%); cumulated value=44 (16.29%)
+ <=32: sub-population=3 (6.00%); cumulated value=56 (20.74%)
+ <=64: sub-population=1 (2.00%); cumulated value=40 (14.81%)
+ list:
+ TId: 40 (14.81%)
+ APublicVisibility: 19 (7.03%)
+ AListExprs: 19 (7.03%)
+ ACallExpr: 18 (6.66%)
+ TClassid: 15 (5.55%)
+ TNumber: 10 (3.70%)
+ ADecIntExpr: 10 (3.70%)
+ AType: 9 (3.33%)
+ TKwend: 8 (2.96%)
+ ASignature: 8 (2.96%)
+ ...
+ ASelfExpr: 1 (0.37%)
+ AAnnotations: 1 (0.37%)
+ ACallAssignExpr: 1 (0.37%)
+ TKwreturn: 1 (0.37%)
+ AInterfaceClasskind: 1 (0.37%)
+ TKwinterface: 1 (0.37%)
+ ANoImport: 1 (0.37%)
+ AMainMethPropdef: 1 (0.37%)
+ AMainClassdef: 1 (0.37%)
+ TKwimport: 1 (0.37%)
+## All identifiers of the AST
+ population: 20
+ minimum value: 1
+ maximum value: 11
+ total value: 55
+ average value: 2.75
+ distribution:
+ <=1: sub-population=3 (15.00%); cumulated value=3 (5.45%)
+ <=2: sub-population=12 (60.00%); cumulated value=24 (43.63%)
+ <=4: sub-population=3 (15.00%); cumulated value=10 (18.18%)
+ <=8: sub-population=1 (5.00%); cumulated value=7 (12.72%)
+ <=16: sub-population=1 (5.00%); cumulated value=11 (20.00%)
+ list:
+ output: 11 (20.00%)
+ Int: 7 (12.72%)
+ run: 4 (7.27%)
+ c: 3 (5.45%)
+ val: 3 (5.45%)
+ i: 2 (3.63%)
+ bar: 2 (3.63%)
+ foo: 2 (3.63%)
+ val2: 2 (3.63%)
+ val1: 2 (3.63%)
+ C: 2 (3.63%)
+ v: 2 (3.63%)
+ baz: 2 (3.63%)
+ a: 2 (3.63%)
+ A: 2 (3.63%)
+ B: 2 (3.63%)
+ b: 2 (3.63%)
+ intern: 1 (1.81%)
+ Object: 1 (1.81%)
+ Bool: 1 (1.81%)
+--- Detection of variance constraints on formal parameter types ---
+-- Generic classes --
+ list:
+ non generic: 7 (100.00%)
+ total classes: 7
+ total formal parameters: 0
+-- Including `private` properties --
+ covariants: 0 (na%)
+ contravariants: 0 (na%)
+ bivariants: 0 (na%)
+ invariants: 0 (na%)
+ total: 0
+-- Excluding `private` properties --
+ covariants: 0 (na%)
+ contravariants: 0 (na%)
+ bivariants: 0 (na%)
+ invariants: 0 (na%)
+ total: 0
+generating project_hierarchy.dot
+generating module_hierarchy.dot
-Number of class definitions: 8
-Number of refined classes: 1 (14.28%)
-Average number of class refinments by classes: 0.14
-Average number of class refinments by refined classes: 1.00
+# Inheritance metrics
-Number of properties: 19
- Number of MAttribute: 3 (15.78%)
- Number of MMethod: 16 (84.21%)
+ ## project base_simple3
+ `- group base_simple3
+ cnoac: number of class_kind ancestor
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnopc: number of class_kind parent
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnocc: number of class_kind children
+ avg: 0.0
+ max: Object (4)
+ min: Bool (0)
+ std: 1.512
+ sum: 4
+ cnodc: number of class_kind descendants
+ avg: 0.0
+ max: Object (4)
+ min: Bool (0)
+ std: 1.512
+ sum: 4
+ cnopi: number of interface_kind parent
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnoci: number of interface_kind children
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnodi: number of interface_kind descendants
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cditc: depth in class tree following only class, abstract, extern kind
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cditi: depth in class tree following only interface_kind
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ mdui: proportion of mclass defined using inheritance (has other parent than Object)
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mduic: proportion of class_kind defined using inheritance
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mduii: proportion of interface_kind defined using inheritance
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mif: proportion of mclass inherited from
+ avg: 0.143
+ max: base_simple3 (0.143)
+ min: base_simple3 (0.143)
+ std: 0.0
+ sum: 0.143
+ mifc: proportion of class_kind inherited from
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mifi: proportion of interface_kind inherited from
+ avg: 0.143
+ max: base_simple3 (0.143)
+ min: base_simple3 (0.143)
+ std: 0.0
+ sum: 0.143
-Number of property definitions: 19
-Number of redefined properties: 0 (0.0%)
-Average number of property redefinitions by property: 0.0
-Average number of property redefinitions by redefined property: na
+ ## global metrics
+ cnoac: number of class_kind ancestor
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnopc: number of class_kind parent
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnocc: number of class_kind children
+ avg: 0.0
+ max: Object (4)
+ min: Bool (0)
+ std: 1.512
+ sum: 4
+ cnodc: number of class_kind descendants
+ avg: 0.0
+ max: Object (4)
+ min: Bool (0)
+ std: 1.512
+ sum: 4
+ cnopi: number of interface_kind parent
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ cnoci: number of interface_kind children
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cnodi: number of interface_kind descendants
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cditc: depth in class tree following only class, abstract, extern kind
+ avg: 0.0
+ max: Object (0)
+ min: Object (0)
+ std: 0.0
+ sum: 0
+ cditi: depth in class tree following only interface_kind
+ avg: 0.0
+ max: Bool (1)
+ min: Object (0)
+ std: 0.926
+ sum: 6
+ mdui: proportion of mclass defined using inheritance (has other parent than Object)
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mduic: proportion of class_kind defined using inheritance
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mduii: proportion of interface_kind defined using inheritance
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mif: proportion of mclass inherited from
+ avg: 0.143
+ max: base_simple3 (0.143)
+ min: base_simple3 (0.143)
+ std: 0.0
+ sum: 0.143
+ mifc: proportion of class_kind inherited from
+ avg: 0.0
+ max: base_simple3 (0.0)
+ min: base_simple3 (0.0)
+ std: 0.0
+ sum: 0.0
+ mifi: proportion of interface_kind inherited from
+ avg: 0.143
+ max: base_simple3 (0.143)
+ min: base_simple3 (0.143)
+ std: 0.0
+ sum: 0.143
--- Metrics of the explitic static types ---
Total number of explicit static types: 9
-Most used types:
- Int: 6
- C: 1
- B: 1
- A: 1
Statistics of type usage:
population: 4
minimum value: 1
distribution:
<=1: sub-population=3 (75.00%); cumulated value=3 (33.33%)
<=8: sub-population=1 (25.00%); cumulated value=6 (66.66%)
---- Sends on Nullable Reciever ---
+ list:
+ Int: 6 (66.66%)
+ C: 1 (11.11%)
+ B: 1 (11.11%)
+ A: 1 (11.11%)
+
+# Mendel metrics
+ large mclasses (threshold: 3.354)
+ Sys: 4
+ budding mclasses (threshold: 3.51)
+ Sys: 4.0
+ blooming mclasses (threshold: 12.0)
+ Sys: 16.0
+--- Detection of the usage of covariance static type conformance ---
+-- Total --
+- Kinds of the subtype -
+ list:
+ primitive type: 6 (100.00%)
+ total: 6
+- Variance -
+ list:
+ monomorph: 6 (100.00%)
+ total: 6
+- Classes of the subtype -
+ list:
+ Int: 6 (100.00%)
+ total: 6
+-- On covariance only --
+- Specific covariance case explanations -
+ list:
+ total: 0
+- Classes of the subtype, when covariance -
+ list:
+ total: 0
+- Patterns of the covariant cases -
+ list:
+ total: 0
+- Nodes of the covariance cases -
+ list:
+ total: 0
+- Modules of the covariance cases -
+ list:
+ total: 0
+- Kind of the expression node (when it make sense) -
+ list:
+ total: 0
+-- Casts --
+- Kind of cast target -
+ list:
+ total: 0
+- Classes of the cast -
+ list:
+ total: 0
+- Cast pattern -
+ list:
+ total: 0
+- Autocasts -
+ list:
+ total: 0
+
+# Nullable metrics
+
+ ## project base_simple3
+ `- group base_simple3
+ cnba: number of accessible attributes (inherited + local)
+ avg: 0.0
+ max: C (2)
+ min: Object (0)
+ std: 0.845
+ sum: 3
+ cnbna: number of accessible nullable attributes (inherited + local) -- nothing
+ sum: 0
+
+ ## global metrics
+ cnba: number of accessible attributes (inherited + local)
+ avg: 0.0
+ max: C (2)
+ min: Object (0)
+ std: 0.845
+ sum: 3
+ cnbna: number of accessible nullable attributes (inherited + local) -- nothing
+ sum: 0
+--- Sends on Nullable Receiver ---
Total number of sends: 19
-Number of sends on a nullable receiver: 0 (0.0%)
-Number of buggy sends (cannot determine the type of the receiver): 0 (0.0%)
---- Explicit vs. Implicit Self ---
-Total number of self: 5
-Total number of implicit self: 4 (80.00%)
---- Construction of tables ---
-Number of runtime classes: 6 (excluding interfaces and abstract classes)
-Average number of composing class definition by runtime class: 3.00
-Total size of tables (classes and instances): 34 (not including stuff like info for subtyping or call-next-method)
-Average size of table by runtime class: 5.66
-Values never redefined: 34 (100.00%)
---- RTA metrics ---
-Number of live runtime types (instantied resolved type): 6
- Sys Bool Int A B C
-Number of live method definitions: 14
-Number of live customized method definitions: 14
-Number of live runtime cast types (ie used in as and isa): 0
-
+Number of sends on a unsafe nullable receiver: 0 (0.00%)
+Number of sends on a safe nullable receiver: 0 (0.00%)
+Number of buggy sends (cannot determine the type of the receiver): 0 (0.00%)
+
+# RTA metrics
+
+ ## Live instances by mainmodules
+ mnlc: number of live mclasses in a mmodule
+ avg: 6.0
+ max: base_simple3 (6)
+ min: base_simple3 (6)
+ std: 0.0
+ sum: 6
+ mnlt: number of live mtypes in a mmodule
+ avg: 6.0
+ max: base_simple3 (6)
+ min: base_simple3 (6)
+ std: 0.0
+ sum: 6
+ mnct: number of live cast mtypes in a mmodule
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+ mnli: number of live instances in a mmodule
+ avg: 17.0
+ max: base_simple3 (17)
+ min: base_simple3 (17)
+ std: 0.0
+ sum: 17
+ mnlm: number of live methods in a mmodule
+ avg: 14.0
+ max: base_simple3 (14)
+ min: base_simple3 (14)
+ std: 0.0
+ sum: 14
+ mnlmd: number of live method definitions in a mmodule
+ avg: 16.0
+ max: base_simple3 (16)
+ min: base_simple3 (16)
+ std: 0.0
+ sum: 16
+ mnldd: number of dead method definitions in a mmodule
+ avg: 0.0
+ max: base_simple3 (0)
+ min: base_simple3 (0)
+ std: 0.0
+ sum: 0
+
+ ## Total live instances by mclasses
+ cnli: number of live instances for a mclass
+ avg: 2.0
+ max: Int (12)
+ min: Sys (1)
+ std: 4.183
+ sum: 17
+ cnlc: number of live cast for a mclass type -- nothing
+ sum: 0
+
+ ## Total live instances by mtypes
+ tnli: number of live instances for a mtype
+ avg: 2.0
+ max: Int (12)
+ min: Sys (1)
+ std: 4.183
+ sum: 17
+ tnlc: number of live casts to a mtype -- nothing
+ sum: 0
+
+ ## MType complexity
+ tags: arity of generic signature
+ avg: 0.0
+ max: Sys (0)
+ min: Sys (0)
+ std: 0.0
+ sum: 0
+ tdos: depth of generic signature
+ avg: 0.0
+ max: Sys (0)
+ min: Sys (0)
+ std: 0.0
+ sum: 0
+
+ ## Callsites
+* 22 live callsites
+MMethodDef locally designated (by number of CallSites)
+ population: 13
+ minimum value: 1
+ maximum value: 10
+ total value: 22
+ average value: 1.69
+ distribution:
+ <=1: sub-population=12 (92.30%); cumulated value=12 (54.54%)
+ <=16: sub-population=1 (7.69%); cumulated value=10 (45.45%)
+ list:
+ base_simple3#Int#output: 10 (45.45%)
+ base_simple3#B#val: 1 (4.54%)
+ base_simple3#B#val=: 1 (4.54%)
+ base_simple3#C#val2: 1 (4.54%)
+ base_simple3#C#val1: 1 (4.54%)
+ ...
+ base_simple3#A#init: 1 (4.54%)
+ base_simple3#Sys#baz: 1 (4.54%)
+ base_simple3#Sys#bar: 1 (4.54%)
+ base_simple3#Sys#foo: 1 (4.54%)
+ base_simple3#C#init: 1 (4.54%)
+MMethodDef possibly invoked at runtime (by number of CallSites)
+ population: 13
+ minimum value: 1
+ maximum value: 10
+ total value: 22
+ average value: 1.69
+ distribution:
+ <=1: sub-population=12 (92.30%); cumulated value=12 (54.54%)
+ <=16: sub-population=1 (7.69%); cumulated value=10 (45.45%)
+ list:
+ base_simple3#Int#output: 10 (45.45%)
+ base_simple3#B#val: 1 (4.54%)
+ base_simple3#B#val=: 1 (4.54%)
+ base_simple3#C#val2: 1 (4.54%)
+ base_simple3#C#val1: 1 (4.54%)
+ ...
+ base_simple3#A#init: 1 (4.54%)
+ base_simple3#Sys#baz: 1 (4.54%)
+ base_simple3#Sys#bar: 1 (4.54%)
+ base_simple3#Sys#foo: 1 (4.54%)
+ base_simple3#C#init: 1 (4.54%)
class_hierarchy.dot
classdef_hierarchy.dot
+inheritance/
+mclasses/
+mendel/
+mmodules/
model.html
module_hierarchy.dot
+nullables/
+project_hierarchy.dot
+rta/