Skip to content

Commit b68a9a5

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Java: add coverage, generatedCoverage, and manualCoverage metrics
1 parent 9d10b71 commit b68a9a5

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

java/ql/src/Metrics/Summaries/GeneratedVsManualCoverage.ql

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,29 @@ private int getNumApis(string package) {
4848
}
4949

5050
from
51-
string package, int generatedOnly, int both, int manualOnly, int non, int all,
51+
string package, int generatedOnly, int both, int manualOnly, int generated, int manual, int non,
52+
int all, float coverage, float generatedCoverage, float manualCoverage,
5253
float manualCoveredByGenerated, float generatedCoveredByManual, float match
5354
where
5455
// count the number of APIs with generated-only, both, and manual-only MaD models for each package
5556
generatedOnly = getNumMadModeledApis(package, "generated") and
5657
both = getNumMadModeledApis(package, "both") and
5758
manualOnly = getNumMadModeledApis(package, "manual") and
59+
// calculate the total generated and total manual numbers
60+
generated = generatedOnly + both and
61+
manual = manualOnly + both and
5862
// count the total number of `DataFlowTargetApi`s for each package
5963
all = getNumApis(package) and
6064
non = all - (generatedOnly + both + manualOnly) and
65+
// Proportion of coverage
66+
coverage = (generatedOnly + both + manualOnly) / all and
67+
generatedCoverage = generated / all and
68+
manualCoverage = manual / all and
6169
// Proportion of manual models covered by generated ones
6270
manualCoveredByGenerated = (both.(float) / (both + manualOnly)) and
6371
// Proportion of generated models covered by manual ones
6472
generatedCoveredByManual = (both.(float) / (both + generatedOnly)) and
6573
// Proportion of data points that match
6674
match = (both.(float) + non) / all
67-
select package, generatedOnly, both, manualOnly, non, all, manualCoveredByGenerated,
68-
generatedCoveredByManual, match order by package
75+
select package, generatedOnly, both, manualOnly, non, all, coverage, generatedCoverage,
76+
manualCoverage, manualCoveredByGenerated, generatedCoveredByManual, match order by package

0 commit comments

Comments
 (0)