Compare add-building cluster exclusivity
This commit is contained in:
parent
d334da6687
commit
2fbc0bd7e7
2 changed files with 51 additions and 0 deletions
|
|
@ -347,6 +347,9 @@ struct RuntimeCompactEventDispatchClusterReport {
|
|||
add_building_condition_tuple_map_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_occurrence_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_map_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_descriptor_keys: BTreeMap<String, Vec<String>>,
|
||||
add_building_signature_condition_cluster_non_add_building_descriptor_keys:
|
||||
BTreeMap<String, Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
|
|
@ -373,6 +376,9 @@ struct RuntimeCompactEventDispatchClusterCountsReport {
|
|||
add_building_condition_tuple_map_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_occurrence_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_map_counts: BTreeMap<String, usize>,
|
||||
add_building_signature_condition_cluster_descriptor_keys: BTreeMap<String, Vec<String>>,
|
||||
add_building_signature_condition_cluster_non_add_building_descriptor_keys:
|
||||
BTreeMap<String, Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
|
|
@ -1858,6 +1864,10 @@ fn run_runtime_inspect_compact_event_dispatch_cluster_counts(
|
|||
.add_building_signature_condition_cluster_occurrence_counts,
|
||||
add_building_signature_condition_cluster_map_counts: report
|
||||
.add_building_signature_condition_cluster_map_counts,
|
||||
add_building_signature_condition_cluster_descriptor_keys: report
|
||||
.add_building_signature_condition_cluster_descriptor_keys,
|
||||
add_building_signature_condition_cluster_non_add_building_descriptor_keys: report
|
||||
.add_building_signature_condition_cluster_non_add_building_descriptor_keys,
|
||||
},
|
||||
};
|
||||
println!("{}", serde_json::to_string_pretty(&output)?);
|
||||
|
|
@ -1891,6 +1901,9 @@ fn build_runtime_compact_event_dispatch_cluster_report(
|
|||
let mut add_building_signature_condition_cluster_occurrence_counts =
|
||||
BTreeMap::<String, usize>::new();
|
||||
let mut add_building_signature_condition_cluster_map_counts = BTreeMap::<String, usize>::new();
|
||||
let mut signature_condition_cluster_descriptor_keys =
|
||||
BTreeMap::<String, BTreeSet<String>>::new();
|
||||
let mut add_building_signature_condition_clusters = BTreeSet::<String>::new();
|
||||
let mut dispatch_descriptor_occurrences =
|
||||
BTreeMap::<String, Vec<RuntimeCompactEventDispatchClusterOccurrence>>::new();
|
||||
let mut unknown_descriptor_occurrences =
|
||||
|
|
@ -1976,12 +1989,18 @@ fn build_runtime_compact_event_dispatch_cluster_report(
|
|||
rows: rows.clone(),
|
||||
};
|
||||
let descriptor_key = compact_event_dispatch_descriptor_key(descriptor_id, &rows);
|
||||
signature_condition_cluster_descriptor_keys
|
||||
.entry(signature_condition_cluster_key.clone())
|
||||
.or_default()
|
||||
.insert(descriptor_key.clone());
|
||||
*dispatch_descriptor_occurrence_counts
|
||||
.entry(descriptor_key.clone())
|
||||
.or_insert(0) += 1;
|
||||
map_descriptor_keys.insert(descriptor_key.clone());
|
||||
if compact_event_dispatch_add_building_descriptor_id(descriptor_id) {
|
||||
record_has_add_building = true;
|
||||
add_building_signature_condition_clusters
|
||||
.insert(signature_condition_cluster_key.clone());
|
||||
*add_building_descriptor_occurrence_counts
|
||||
.entry(descriptor_key.clone())
|
||||
.or_insert(0) += 1;
|
||||
|
|
@ -2063,6 +2082,29 @@ fn build_runtime_compact_event_dispatch_cluster_report(
|
|||
.map(|label| format!("{descriptor_id} -> {label}"))
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let add_building_signature_condition_cluster_descriptor_keys =
|
||||
add_building_signature_condition_clusters
|
||||
.iter()
|
||||
.map(|cluster| {
|
||||
let keys = signature_condition_cluster_descriptor_keys
|
||||
.get(cluster)
|
||||
.map(|keys| keys.iter().cloned().collect::<Vec<_>>())
|
||||
.unwrap_or_default();
|
||||
(cluster.clone(), keys)
|
||||
})
|
||||
.collect::<BTreeMap<_, _>>();
|
||||
let add_building_signature_condition_cluster_non_add_building_descriptor_keys =
|
||||
add_building_signature_condition_cluster_descriptor_keys
|
||||
.iter()
|
||||
.map(|(cluster, keys)| {
|
||||
let filtered = keys
|
||||
.iter()
|
||||
.filter(|key| !key.contains("Add Building"))
|
||||
.cloned()
|
||||
.collect::<Vec<_>>();
|
||||
(cluster.clone(), filtered)
|
||||
})
|
||||
.collect::<BTreeMap<_, _>>();
|
||||
|
||||
Ok(RuntimeCompactEventDispatchClusterReport {
|
||||
maps_scanned: input_paths.len(),
|
||||
|
|
@ -2089,6 +2131,8 @@ fn build_runtime_compact_event_dispatch_cluster_report(
|
|||
add_building_condition_tuple_map_counts,
|
||||
add_building_signature_condition_cluster_occurrence_counts,
|
||||
add_building_signature_condition_cluster_map_counts,
|
||||
add_building_signature_condition_cluster_descriptor_keys,
|
||||
add_building_signature_condition_cluster_non_add_building_descriptor_keys,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -313,6 +313,13 @@ Working rule:
|
|||
`FarmGrain`/`Logging Camp` clusters on `nondirect-ge34-h0002-0007-0004-73|75|7b|85...` with
|
||||
condition family `[7:4,42:0]`; that narrows the remaining trigger-kind/source question to a
|
||||
small set of compact subfamilies rather than a single undifferentiated add-building carrier
|
||||
- the first exclusivity pass is positive too:
|
||||
the widened cluster-counts report now surfaces, for each add-building
|
||||
signature/condition cluster, the descriptor keys that share it plus the
|
||||
non-add-building subset. Current targeted checks on `Texas Tea.gmp` and `Alternate USA.gmp`
|
||||
show those observed add-building clusters have empty non-add-building companions, which biases
|
||||
the next source/trigger-kind pass toward a distinct add-building compact subfamily rather than
|
||||
a generic dispatch carrier reused by variable-band rows
|
||||
- the same probe now narrows the candidate runtime-effect set too:
|
||||
it reports which decoded records already carry grouped opcodes in the grounded
|
||||
`0x00431b20` dispatch strip; real `War Effort.gmp` currently narrows that to record indexes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue