|
5 | 5 | import math
|
6 | 6 | import unittest
|
7 | 7 |
|
8 |
| -from codebasin.report import coverage |
| 8 | +from codebasin.report import average_coverage, coverage |
9 | 9 |
|
10 | 10 |
|
11 | 11 | class TestCoverage(unittest.TestCase):
|
@@ -37,12 +37,38 @@ def test_coverage(self):
|
37 | 37 | expected_b = (2 + 3) / total_sloc * 100.0
|
38 | 38 | self.assertEqual(coverage(setmap, ["B"]), expected_b)
|
39 | 39 |
|
| 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 | + |
40 | 65 | def test_null_coverage(self):
|
41 | 66 | """Check coverage computation for null cases."""
|
42 | 67 | setmap = {
|
43 | 68 | frozenset(""): 0,
|
44 | 69 | }
|
45 | 70 | self.assertTrue(math.isnan(coverage(setmap)))
|
| 71 | + self.assertTrue(math.isnan(average_coverage(setmap))) |
46 | 72 |
|
47 | 73 |
|
48 | 74 | if __name__ == "__main__":
|
|
0 commit comments