Coverage API Reference
Logic for calculating the requirement coverage matrix.
CoverageReport
dataclass
The final calculated matrix report for the entire run.
Source code in reqtrace/analysis/coverage.py
@dataclass
class CoverageReport:
"""The final calculated matrix report for the entire run."""
total_requirements: int
implemented_requirements: int
partial_requirements: int
missing_requirements: int
coverage_details: Dict[str, RequirementCoverage] = field(default_factory=dict)
unmatched_traces: List[TraceMatch] = field(default_factory=list)
source_stats: Optional[SourceStats] = None
RequirementCoverage
dataclass
Holds calculated implementation details for a single requirement.
Source code in reqtrace/analysis/coverage.py
@dataclass
class RequirementCoverage:
"""Holds calculated implementation details for a single requirement."""
req_id: str
is_implemented: bool
total_percentage: int
matches: List[TraceMatch] = field(default_factory=list)
calculate_coverage(index, traces, file_lines=None)
Takes a RequirementIndex and found TraceMatches to calculate the implementation matrix.
Source code in reqtrace/analysis/coverage.py
def calculate_coverage(
index: RequirementIndex, traces: List[TraceMatch], file_lines: Optional[Dict[str, Tuple[int, bool]]] = None
) -> CoverageReport:
"""Takes a RequirementIndex and found TraceMatches to calculate the implementation matrix."""
details, unmatched = _apply_direct_traces(index, traces)
_calculate_rollups(index, details)
report = _build_report(index, details, unmatched)
if file_lines is not None:
report.source_stats = _calculate_source_stats(traces, file_lines)
return report