(deopt: &Deopt)
| 169 | } |
| 170 | |
| 171 | fn plot_acc_coverage(deopt: &Deopt) -> Result<()> { |
| 172 | let acc_file = get_acc_coverage_save_file(deopt)?; |
| 173 | let raw_str = std::fs::read_to_string(acc_file)?; |
| 174 | let acc_coverage: Vec<usize> = serde_json::from_str(&raw_str)?; |
| 175 | |
| 176 | let image_save_file = get_acc_coverage_save_image(deopt)?; |
| 177 | |
| 178 | let x_limit = acc_coverage.len(); |
| 179 | let y_limit = acc_coverage.iter().max().unwrap(); |
| 180 | |
| 181 | let root_area = BitMapBackend::new(&image_save_file, (600, 400)).into_drawing_area(); |
| 182 | root_area.fill(&WHITE).unwrap(); |
| 183 | let mut ctx = ChartBuilder::on(&root_area) |
| 184 | .set_label_area_size(LabelAreaPosition::Left, 40) |
| 185 | .set_label_area_size(LabelAreaPosition::Bottom, 40) |
| 186 | .caption("Line Plot Demo", ("sans-serif", 40)) |
| 187 | .build_cartesian_2d(0..x_limit, 0..*y_limit) |
| 188 | .unwrap(); |
| 189 | |
| 190 | ctx.configure_mesh().draw().unwrap(); |
| 191 | |
| 192 | ctx.draw_series(LineSeries::new( |
| 193 | acc_coverage |
| 194 | .iter() |
| 195 | .enumerate() |
| 196 | .map(|(id, coverage)| (id, *coverage)), |
| 197 | &GREEN, |
| 198 | )) |
| 199 | .unwrap(); |
| 200 | Ok(()) |
| 201 | } |
| 202 | |
| 203 | fn plot_acc_coverage_comparison(deopt: &Deopt) -> Result<()> { |
| 204 | let bench_file = get_acc_coverage_bench_file(deopt)?; |
no test coverage detected