MCPcopy Create free account
hub / github.com/concensure/Semantic / build_stats

Function build_stats

patch_memory/src/lib.rs:212–261  ·  view source on GitHub ↗
(records: &[PatchRecord])

Source from the content-addressed store, hash-verified

210}
211
212fn build_stats(records: &[PatchRecord]) -> PatchStats {
213 if records.is_empty() {
214 return PatchStats::default();
215 }
216
217 let mut success = 0usize;
218 let mut rollback = 0usize;
219 let mut model_totals: HashMap<String, (usize, usize)> = HashMap::new();
220 let mut edit_totals: HashMap<String, (usize, usize)> = HashMap::new();
221
222 for r in records {
223 let ok = is_success(r);
224 if ok {
225 success += 1;
226 }
227 if r.rollback_occurred {
228 rollback += 1;
229 }
230
231 let m = model_totals.entry(r.model_used.clone()).or_insert((0, 0));
232 m.0 += 1;
233 if ok {
234 m.1 += 1;
235 }
236
237 let key = format!("{:?}", r.edit_type);
238 let e = edit_totals.entry(key).or_insert((0, 0));
239 e.0 += 1;
240 if ok {
241 e.1 += 1;
242 }
243 }
244
245 let model_success_rate = model_totals
246 .into_iter()
247 .map(|(k, (t, s))| (k, s as f32 / t as f32))
248 .collect();
249 let edit_type_success_rate = edit_totals
250 .into_iter()
251 .map(|(k, (t, s))| (k, s as f32 / t as f32))
252 .collect();
253
254 PatchStats {
255 total_patches: records.len(),
256 success_rate: success as f32 / records.len() as f32,
257 rollback_frequency: rollback as f32 / records.len() as f32,
258 model_success_rate,
259 edit_type_success_rate,
260 }
261}
262
263fn build_model_performance(records: &[PatchRecord]) -> Vec<ModelPerformance> {
264 let mut grouped: HashMap<String, (usize, usize)> = HashMap::new();

Callers 2

statsMethod · 0.85
recompute_aggregatesMethod · 0.85

Calls 1

is_successFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…