@@ -6,132 +6,146 @@ namespace Coverlet.Core
6
6
{
7
7
public class CoverageSummary
8
8
{
9
- public double CalculateLineCoverage ( KeyValuePair < string , Lines > method )
9
+ public double CalculateLineCoverage ( Lines lines )
10
10
{
11
- double coverage = 0 , totalLines = 0 , linesCovered = 0 ;
12
- foreach ( var line in method . Value )
13
- {
14
- totalLines ++ ;
15
- if ( line . Value . Hits > 0 )
16
- linesCovered ++ ;
17
- }
18
-
19
- coverage = totalLines == 0 ? totalLines : linesCovered / totalLines ;
11
+ double linesCovered = lines . Where ( l => l . Value . Hits > 0 ) . Count ( ) ;
12
+ double coverage = lines . Count == 0 ? lines . Count : linesCovered / lines . Count ;
20
13
return Math . Round ( coverage , 3 ) ;
21
14
}
22
15
23
- public double CalculateLineCoverage ( KeyValuePair < string , Methods > @class )
16
+ public double CalculateLineCoverage ( Methods methods )
24
17
{
25
18
double total = 0 , average = 0 ;
26
- foreach ( var method in @class . Value )
27
- total += CalculateLineCoverage ( method ) ;
19
+ foreach ( var method in methods )
20
+ total += CalculateLineCoverage ( method . Value ) ;
28
21
29
- average = total / @class . Value . Count ;
22
+ average = total / methods . Count ;
30
23
return Math . Round ( average , 3 ) ;
31
24
}
32
25
33
- public double CalculateLineCoverage ( KeyValuePair < string , Classes > document )
26
+ public double CalculateLineCoverage ( Classes classes )
34
27
{
35
28
double total = 0 , average = 0 ;
36
- foreach ( var @class in document . Value )
37
- total += CalculateLineCoverage ( @class ) ;
29
+ foreach ( var @class in classes )
30
+ total += CalculateLineCoverage ( @class . Value ) ;
38
31
39
- average = total / document . Value . Count ;
32
+ average = total / classes . Count ;
40
33
return Math . Round ( average , 3 ) ;
41
34
}
42
35
43
- public double CalculateLineCoverage ( KeyValuePair < string , Documents > module )
36
+ public double CalculateLineCoverage ( Documents documents )
44
37
{
45
38
double total = 0 , average = 0 ;
46
- foreach ( var document in module . Value )
47
- total += CalculateLineCoverage ( document ) ;
39
+ foreach ( var document in documents )
40
+ total += CalculateLineCoverage ( document . Value ) ;
48
41
49
- average = total / module . Value . Count ;
42
+ average = total / documents . Count ;
50
43
return Math . Round ( average , 3 ) ;
51
44
}
52
45
53
- public double CalculateBranchCoverage ( KeyValuePair < string , Lines > method )
46
+ public double CalculateLineCoverage ( Modules modules )
54
47
{
55
- double coverage = 0 , totalPoints = 0 , pointsCovered = 0 ;
56
- foreach ( var line in method . Value )
57
- {
58
- if ( line . Value . IsBranchPoint )
59
- {
60
- totalPoints ++ ;
61
- if ( line . Value . Hits > 0 )
62
- pointsCovered ++ ;
63
- }
64
- }
65
-
66
- coverage = totalPoints == 0 ? totalPoints : pointsCovered / totalPoints ;
48
+ double total = 0 , average = 0 ;
49
+ foreach ( var module in modules )
50
+ total += CalculateLineCoverage ( module . Value ) ;
51
+
52
+ average = total / modules . Count ;
53
+ return Math . Round ( average , 3 ) ;
54
+ }
55
+
56
+ public double CalculateBranchCoverage ( Lines lines )
57
+ {
58
+ double pointsCovered = lines . Where ( l => l . Value . Hits > 0 && l . Value . IsBranchPoint ) . Count ( ) ;
59
+ double totalPoints = lines . Where ( l => l . Value . IsBranchPoint ) . Count ( ) ;
60
+ double coverage = totalPoints == 0 ? totalPoints : pointsCovered / totalPoints ;
67
61
return Math . Round ( coverage , 3 ) ;
68
62
}
69
63
70
- public double CalculateBranchCoverage ( KeyValuePair < string , Methods > @class )
64
+ public double CalculateBranchCoverage ( Methods methods )
65
+ {
66
+ double total = 0 , average = 0 ;
67
+ foreach ( var method in methods )
68
+ total += CalculateBranchCoverage ( method . Value ) ;
69
+
70
+ average = total / methods . Count ;
71
+ return Math . Round ( average , 3 ) ;
72
+ }
73
+
74
+ public double CalculateBranchCoverage ( Classes classes )
71
75
{
72
76
double total = 0 , average = 0 ;
73
- foreach ( var method in @class . Value )
74
- total += CalculateBranchCoverage ( method ) ;
77
+ foreach ( var @class in classes )
78
+ total += CalculateBranchCoverage ( @class . Value ) ;
75
79
76
- average = total / @class . Value . Count ;
80
+ average = total / classes . Count ;
77
81
return Math . Round ( average , 3 ) ;
78
82
}
79
83
80
- public double CalculateBranchCoverage ( KeyValuePair < string , Classes > document )
84
+ public double CalculateBranchCoverage ( Documents documents )
81
85
{
82
86
double total = 0 , average = 0 ;
83
- foreach ( var @class in document . Value )
84
- total += CalculateBranchCoverage ( @class ) ;
87
+ foreach ( var document in documents )
88
+ total += CalculateBranchCoverage ( document . Value ) ;
85
89
86
- average = total / document . Value . Count ;
90
+ average = total / documents . Count ;
87
91
return Math . Round ( average , 3 ) ;
88
92
}
89
93
90
- public double CalculateBranchCoverage ( KeyValuePair < string , Documents > module )
94
+ public double CalculateBranchCoverage ( Modules modules )
91
95
{
92
96
double total = 0 , average = 0 ;
93
- foreach ( var document in module . Value )
94
- total += CalculateBranchCoverage ( document ) ;
97
+ foreach ( var module in modules )
98
+ total += CalculateBranchCoverage ( module . Value ) ;
95
99
96
- average = total / module . Value . Count ;
100
+ average = total / modules . Count ;
97
101
return Math . Round ( average , 3 ) ;
98
102
}
99
103
100
- public double CalculateMethodCoverage ( KeyValuePair < string , Lines > method )
104
+ public double CalculateMethodCoverage ( Lines lines )
101
105
{
102
- if ( method . Value . Any ( l => l . Value . Hits > 0 ) )
106
+ if ( lines . Any ( l => l . Value . Hits > 0 ) )
103
107
return 1 ;
104
108
105
109
return 0 ;
106
110
}
107
111
108
- public double CalculateMethodCoverage ( KeyValuePair < string , Methods > @class )
112
+ public double CalculateMethodCoverage ( Methods methods )
113
+ {
114
+ double total = 0 , average = 0 ;
115
+ foreach ( var method in methods )
116
+ total += CalculateMethodCoverage ( method . Value ) ;
117
+
118
+ average = total / methods . Count ;
119
+ return Math . Round ( average , 3 ) ;
120
+ }
121
+
122
+ public double CalculateMethodCoverage ( Classes classes )
109
123
{
110
124
double total = 0 , average = 0 ;
111
- foreach ( var method in @class . Value )
112
- total += CalculateMethodCoverage ( method ) ;
125
+ foreach ( var @class in classes )
126
+ total += CalculateMethodCoverage ( @class . Value ) ;
113
127
114
- average = total / @class . Value . Count ;
128
+ average = total / classes . Count ;
115
129
return Math . Round ( average , 3 ) ;
116
130
}
117
131
118
- public double CalculateMethodCoverage ( KeyValuePair < string , Classes > document )
132
+ public double CalculateMethodCoverage ( Documents documents )
119
133
{
120
134
double total = 0 , average = 0 ;
121
- foreach ( var @class in document . Value )
122
- total += CalculateMethodCoverage ( @class ) ;
135
+ foreach ( var document in documents )
136
+ total += CalculateMethodCoverage ( document . Value ) ;
123
137
124
- average = total / document . Value . Count ;
138
+ average = total / documents . Count ;
125
139
return Math . Round ( average , 3 ) ;
126
140
}
127
141
128
- public double CalculateMethodCoverage ( KeyValuePair < string , Documents > module )
142
+ public double CalculateMethodCoverage ( Modules modules )
129
143
{
130
144
double total = 0 , average = 0 ;
131
- foreach ( var document in module . Value )
132
- total += CalculateMethodCoverage ( document ) ;
145
+ foreach ( var module in modules )
146
+ total += CalculateMethodCoverage ( module . Value ) ;
133
147
134
- average = total / module . Value . Count ;
148
+ average = total / modules . Count ;
135
149
return Math . Round ( average , 3 ) ;
136
150
}
137
151
}
0 commit comments