Skip to content

Commit 9a1235b

Browse files
committed
Add tests for average_coverage function
Signed-off-by: John Pennycook <john.pennycook@intel.com>
1 parent 26de892 commit 9a1235b

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

tests/metrics/test_coverage.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import math
66
import unittest
77

8-
from codebasin.report import coverage
8+
from codebasin.report import average_coverage, coverage
99

1010

1111
class TestCoverage(unittest.TestCase):
@@ -37,12 +37,38 @@ def test_coverage(self):
3737
expected_b = (2 + 3) / total_sloc * 100.0
3838
self.assertEqual(coverage(setmap, ["B"]), expected_b)
3939

40+
def test_average_coverage(self):
41+
"""Check average coverage computation for simple setmap."""
42+
setmap = {
43+
frozenset(["A"]): 1,
44+
frozenset(["B"]): 2,
45+
frozenset(["A", "B"]): 3,
46+
frozenset([]): 4,
47+
}
48+
total_sloc = 1 + 2 + 3 + 4
49+
50+
subset = {"A"}
51+
used_sloc = 1 + 3
52+
coverage_a = used_sloc / total_sloc * 100.0
53+
self.assertEqual(average_coverage(setmap, subset), coverage_a)
54+
55+
subset = {"B"}
56+
used_sloc = 2 + 3
57+
coverage_b = used_sloc / total_sloc * 100.0
58+
self.assertEqual(average_coverage(setmap, subset), coverage_b)
59+
60+
subset = {"A", "B"}
61+
expected_avg = (coverage_a + coverage_b) / 2
62+
self.assertEqual(average_coverage(setmap, subset), expected_avg)
63+
self.assertEqual(average_coverage(setmap), expected_avg)
64+
4065
def test_null_coverage(self):
4166
"""Check coverage computation for null cases."""
4267
setmap = {
4368
frozenset(""): 0,
4469
}
4570
self.assertTrue(math.isnan(coverage(setmap)))
71+
self.assertTrue(math.isnan(average_coverage(setmap)))
4672

4773

4874
if __name__ == "__main__":

0 commit comments

Comments
 (0)