| 206 | } |
| 207 | |
| 208 | CoverageIndex::CoverageReport CoverageIndex::GetCoverageReport() const { |
| 209 | CoverageReport report; |
| 210 | if (node_coverage_stats_.empty()) { |
| 211 | return report; |
| 212 | } |
| 213 | |
| 214 | std::string dot_graph = std::string(kDigraphHeader); |
| 215 | TraverseAndCalculateCoverage(checked_expr_, navigable_ast_.Root(), |
| 216 | node_coverage_stats_, true, "", report, |
| 217 | dot_graph); |
| 218 | dot_graph += "}\n"; |
| 219 | report.dot_graph = dot_graph; |
| 220 | report.cel_expression = |
| 221 | google::api::expr::Unparse(checked_expr_).value_or(""); |
| 222 | return report; |
| 223 | } |
| 224 | |
| 225 | void CoverageIndex::WriteLCOV(absl::string_view path) { |
| 226 | std::ofstream file(std::string(path).c_str()); |