Skip to content

Commit 26de892

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

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/metrics/test_coverage.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Copyright (C) 2019-2024 Intel Corporation
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
4+
import logging
5+
import math
6+
import unittest
7+
8+
from codebasin.report import coverage
9+
10+
11+
class TestCoverage(unittest.TestCase):
12+
"""
13+
Test computation of coverage.
14+
"""
15+
16+
def setUp(self):
17+
logging.disable()
18+
19+
def test_coverage(self):
20+
"""Check coverage computation for simple setmap."""
21+
setmap = {
22+
frozenset(["A"]): 1,
23+
frozenset(["B"]): 2,
24+
frozenset(["A", "B"]): 3,
25+
frozenset([]): 4,
26+
}
27+
used_sloc = 1 + 2 + 3
28+
total_sloc = 1 + 2 + 3 + 4
29+
30+
expected_coverage = used_sloc / total_sloc * 100.0
31+
self.assertEqual(coverage(setmap), expected_coverage)
32+
self.assertEqual(coverage(setmap, ["A", "B"]), expected_coverage)
33+
34+
expected_a = (1 + 3) / total_sloc * 100.0
35+
self.assertEqual(coverage(setmap, ["A"]), expected_a)
36+
37+
expected_b = (2 + 3) / total_sloc * 100.0
38+
self.assertEqual(coverage(setmap, ["B"]), expected_b)
39+
40+
def test_null_coverage(self):
41+
"""Check coverage computation for null cases."""
42+
setmap = {
43+
frozenset(""): 0,
44+
}
45+
self.assertTrue(math.isnan(coverage(setmap)))
46+
47+
48+
if __name__ == "__main__":
49+
unittest.main()

0 commit comments

Comments
 (0)