Promote top dispatch clusters into service trace
This commit is contained in:
parent
7c83b214a9
commit
43f93eb0b6
7 changed files with 160 additions and 0 deletions
|
|
@ -66,6 +66,8 @@ pub(super) fn build_near_city_acquisition_trace_inputs(
|
||||||
.near_city_acquisition_nontransport_late_bringup_candidate_branches,
|
.near_city_acquisition_nontransport_late_bringup_candidate_branches,
|
||||||
near_city_acquisition_nontransport_explicit_trigger_kind_retags: projection
|
near_city_acquisition_nontransport_explicit_trigger_kind_retags: projection
|
||||||
.near_city_acquisition_nontransport_explicit_trigger_kind_retags,
|
.near_city_acquisition_nontransport_explicit_trigger_kind_retags,
|
||||||
|
near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters: projection
|
||||||
|
.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters,
|
||||||
near_city_acquisition_nontransport_add_building_descriptor_map_paths: projection
|
near_city_acquisition_nontransport_add_building_descriptor_map_paths: projection
|
||||||
.near_city_acquisition_nontransport_add_building_descriptor_map_paths,
|
.near_city_acquisition_nontransport_add_building_descriptor_map_paths,
|
||||||
near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@ pub(in crate::inspect::smp) struct NearCityAcquisitionTraceInputs {
|
||||||
Vec<String>,
|
Vec<String>,
|
||||||
pub(in crate::inspect::smp) near_city_acquisition_nontransport_explicit_trigger_kind_retags:
|
pub(in crate::inspect::smp) near_city_acquisition_nontransport_explicit_trigger_kind_retags:
|
||||||
Vec<String>,
|
Vec<String>,
|
||||||
|
pub(in crate::inspect::smp) near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters:
|
||||||
|
Vec<SmpCompactDispatchSignatureConditionClusterSummaryEntry>,
|
||||||
pub(in crate::inspect::smp) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
pub(in crate::inspect::smp) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
||||||
BTreeMap<String, Vec<String>>,
|
BTreeMap<String, Vec<String>>,
|
||||||
pub(in crate::inspect::smp) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
pub(in crate::inspect::smp) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
use crate::inspect::smp::services::SmpCompactDispatchSignatureConditionClusterSummaryEntry;
|
||||||
|
|
||||||
pub(super) struct NearCityProjectionStatusFields {
|
pub(super) struct NearCityProjectionStatusFields {
|
||||||
pub(super) near_city_acquisition_shellless_readiness_status: String,
|
pub(super) near_city_acquisition_shellless_readiness_status: String,
|
||||||
pub(super) near_city_acquisition_runtime_backed_input_families: Vec<String>,
|
pub(super) near_city_acquisition_runtime_backed_input_families: Vec<String>,
|
||||||
|
|
@ -18,6 +20,8 @@ pub(super) struct NearCityProjectionStatusFields {
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_record_count: usize,
|
pub(super) near_city_acquisition_nontransport_add_building_record_count: usize,
|
||||||
pub(super) near_city_acquisition_nontransport_late_bringup_candidate_branches: Vec<String>,
|
pub(super) near_city_acquisition_nontransport_late_bringup_candidate_branches: Vec<String>,
|
||||||
pub(super) near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
pub(super) near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
||||||
|
pub(super) near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters:
|
||||||
|
Vec<SmpCompactDispatchSignatureConditionClusterSummaryEntry>,
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
pub(super) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
||||||
BTreeMap<String, Vec<String>>,
|
BTreeMap<String, Vec<String>>,
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
pub(super) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
||||||
|
|
@ -125,6 +129,90 @@ pub(super) fn build_near_city_projection_status_fields() -> NearCityProjectionSt
|
||||||
"0x00443526 SP - GOLD rewrites [event+0x7ef] 1 -> 5 for live runtime-event id 1 under [world+0x66de]".to_string(),
|
"0x00443526 SP - GOLD rewrites [event+0x7ef] 1 -> 5 for live runtime-event id 1 under [world+0x66de]".to_string(),
|
||||||
"0x00443601 Labor rewrites [event+0x7ef] 0 -> 2 for live runtime-event id 0x0d under [world+0x66de]".to_string(),
|
"0x00443601 Labor rewrites [event+0x7ef] 0 -> 2 for live runtime-event id 0x0d under [world+0x66de]".to_string(),
|
||||||
],
|
],
|
||||||
|
near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters: vec![
|
||||||
|
SmpCompactDispatchSignatureConditionClusterSummaryEntry {
|
||||||
|
cluster_key: "nondirect-ge1e-h0001-0360-0004-0100-0200-p0000-0000-0000-ffff :: [864:4]".to_string(),
|
||||||
|
occurrence_count: 36,
|
||||||
|
map_count: 18,
|
||||||
|
descriptor_keys: vec![
|
||||||
|
"39 Game Variable 1".to_string(),
|
||||||
|
"40 Game Variable 2".to_string(),
|
||||||
|
"41 Game Variable 3".to_string(),
|
||||||
|
"42 Game Variable 4".to_string(),
|
||||||
|
"43 Company Variable 1".to_string(),
|
||||||
|
"44 Company Variable 2".to_string(),
|
||||||
|
"45 Company Variable 3".to_string(),
|
||||||
|
"46 Company Variable 4".to_string(),
|
||||||
|
"8 Economic Status".to_string(),
|
||||||
|
],
|
||||||
|
sample_map_paths: vec![
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Britain.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Central Pacific.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Chicago to New York.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Crossing the Alps.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Eastern Canada.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Eastern China.gmp".to_string(),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
SmpCompactDispatchSignatureConditionClusterSummaryEntry {
|
||||||
|
cluster_key: "nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff :: [-1:4]".to_string(),
|
||||||
|
occurrence_count: 27,
|
||||||
|
map_count: 14,
|
||||||
|
descriptor_keys: vec![
|
||||||
|
"16 Company Track Pieces Buildable".to_string(),
|
||||||
|
"39 Game Variable 1".to_string(),
|
||||||
|
"40 Game Variable 2".to_string(),
|
||||||
|
"41 Game Variable 3".to_string(),
|
||||||
|
"42 Game Variable 4".to_string(),
|
||||||
|
"43 Company Variable 1".to_string(),
|
||||||
|
"44 Company Variable 2".to_string(),
|
||||||
|
"46 Company Variable 4".to_string(),
|
||||||
|
"47 Player Variable 1".to_string(),
|
||||||
|
"48 Player Variable 2".to_string(),
|
||||||
|
"49 Player Variable 3".to_string(),
|
||||||
|
"50 Player Variable 4".to_string(),
|
||||||
|
"506 Add Building Barracks".to_string(),
|
||||||
|
"507 Add Building Bauxite Mine".to_string(),
|
||||||
|
],
|
||||||
|
sample_map_paths: vec![
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Alternate USA.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Central Pacific.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Chicago to New York.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Coast to Coast.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Go West!.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Greenland Growing.gmp".to_string(),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
SmpCompactDispatchSignatureConditionClusterSummaryEntry {
|
||||||
|
cluster_key: "nondirect-ge1e-h0001-004a-0004-0100-0200-p0000-0000-0000-ffff :: [74:4]".to_string(),
|
||||||
|
occurrence_count: 9,
|
||||||
|
map_count: 1,
|
||||||
|
descriptor_keys: vec!["54 Territory Variable 4".to_string()],
|
||||||
|
sample_map_paths: vec![
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Alternate USA.gmp".to_string(),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
SmpCompactDispatchSignatureConditionClusterSummaryEntry {
|
||||||
|
cluster_key: "nondirect-ge1e-h0001-0080-0004-0100-0200-p0000-0000-0000-ffff :: [128:4]".to_string(),
|
||||||
|
occurrence_count: 9,
|
||||||
|
map_count: 4,
|
||||||
|
descriptor_keys: vec![
|
||||||
|
"39 Game Variable 1".to_string(),
|
||||||
|
"43 Company Variable 1".to_string(),
|
||||||
|
"44 Company Variable 2".to_string(),
|
||||||
|
"45 Company Variable 3".to_string(),
|
||||||
|
"46 Company Variable 4".to_string(),
|
||||||
|
"47 Player Variable 1".to_string(),
|
||||||
|
"50 Player Variable 4".to_string(),
|
||||||
|
],
|
||||||
|
sample_map_paths: vec![
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Argentina Opens Up.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/California Island.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/Orient Express.gmp".to_string(),
|
||||||
|
"rt3_wineprefix/drive_c/rt3_105/maps/South East Australia.gmp".to_string(),
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
near_city_acquisition_nontransport_add_building_descriptor_map_paths: BTreeMap::from([
|
near_city_acquisition_nontransport_add_building_descriptor_map_paths: BTreeMap::from([
|
||||||
(
|
(
|
||||||
"506 Add Building Barracks".to_string(),
|
"506 Add Building Barracks".to_string(),
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ pub(super) struct NearCityReportFields {
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_record_count: usize,
|
pub(super) near_city_acquisition_nontransport_add_building_record_count: usize,
|
||||||
pub(super) near_city_acquisition_nontransport_late_bringup_candidate_branches: Vec<String>,
|
pub(super) near_city_acquisition_nontransport_late_bringup_candidate_branches: Vec<String>,
|
||||||
pub(super) near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
pub(super) near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
||||||
|
pub(super) near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters:
|
||||||
|
Vec<SmpCompactDispatchSignatureConditionClusterSummaryEntry>,
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
pub(super) near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
||||||
BTreeMap<String, Vec<String>>,
|
BTreeMap<String, Vec<String>>,
|
||||||
pub(super) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
pub(super) near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
||||||
|
|
@ -100,6 +102,9 @@ pub(super) fn build_near_city_report_fields(
|
||||||
near_city_acquisition_nontransport_explicit_trigger_kind_retags: inputs
|
near_city_acquisition_nontransport_explicit_trigger_kind_retags: inputs
|
||||||
.near_city_acquisition_nontransport_explicit_trigger_kind_retags
|
.near_city_acquisition_nontransport_explicit_trigger_kind_retags
|
||||||
.clone(),
|
.clone(),
|
||||||
|
near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters: inputs
|
||||||
|
.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters
|
||||||
|
.clone(),
|
||||||
near_city_acquisition_nontransport_add_building_descriptor_map_paths: inputs
|
near_city_acquisition_nontransport_add_building_descriptor_map_paths: inputs
|
||||||
.near_city_acquisition_nontransport_add_building_descriptor_map_paths
|
.near_city_acquisition_nontransport_add_building_descriptor_map_paths
|
||||||
.clone(),
|
.clone(),
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,9 @@ pub(in crate::inspect::smp) fn build_periodic_company_service_trace_report(
|
||||||
.near_city_acquisition_nontransport_late_bringup_candidate_branches,
|
.near_city_acquisition_nontransport_late_bringup_candidate_branches,
|
||||||
near_city_acquisition_nontransport_explicit_trigger_kind_retags: near_city_fields
|
near_city_acquisition_nontransport_explicit_trigger_kind_retags: near_city_fields
|
||||||
.near_city_acquisition_nontransport_explicit_trigger_kind_retags,
|
.near_city_acquisition_nontransport_explicit_trigger_kind_retags,
|
||||||
|
near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters:
|
||||||
|
near_city_fields
|
||||||
|
.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters,
|
||||||
near_city_acquisition_nontransport_add_building_descriptor_map_paths: near_city_fields
|
near_city_acquisition_nontransport_add_building_descriptor_map_paths: near_city_fields
|
||||||
.near_city_acquisition_nontransport_add_building_descriptor_map_paths,
|
.near_city_acquisition_nontransport_add_building_descriptor_map_paths,
|
||||||
near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
near_city_acquisition_nontransport_add_building_signature_condition_cluster_map_paths:
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,17 @@ pub struct SmpSavePlacedStructurePolicyTrailingWordSummaryEntry {
|
||||||
pub count: usize,
|
pub count: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
|
pub struct SmpCompactDispatchSignatureConditionClusterSummaryEntry {
|
||||||
|
pub cluster_key: String,
|
||||||
|
pub occurrence_count: usize,
|
||||||
|
pub map_count: usize,
|
||||||
|
#[serde(default)]
|
||||||
|
pub descriptor_keys: Vec<String>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub sample_map_paths: Vec<String>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||||
pub struct SmpPeriodicCompanyServiceTraceReport {
|
pub struct SmpPeriodicCompanyServiceTraceReport {
|
||||||
pub profile_family: String,
|
pub profile_family: String,
|
||||||
|
|
@ -184,6 +195,9 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
pub near_city_acquisition_nontransport_explicit_trigger_kind_retags: Vec<String>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
pub near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters:
|
||||||
|
Vec<SmpCompactDispatchSignatureConditionClusterSummaryEntry>,
|
||||||
|
#[serde(default)]
|
||||||
pub near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
pub near_city_acquisition_nontransport_add_building_descriptor_map_paths:
|
||||||
BTreeMap<String, Vec<String>>,
|
BTreeMap<String, Vec<String>>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
|
|
||||||
|
|
@ -360,6 +360,52 @@ fn builds_periodic_company_service_trace_report_with_candidate_consumers() {
|
||||||
.iter()
|
.iter()
|
||||||
.any(|line| line.contains("0x00443601") && line.contains("0 -> 2"))
|
.any(|line| line.contains("0x00443601") && line.contains("0 -> 2"))
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
trace
|
||||||
|
.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters
|
||||||
|
.len(),
|
||||||
|
4
|
||||||
|
);
|
||||||
|
let top_cluster =
|
||||||
|
&trace.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters[0];
|
||||||
|
assert_eq!(
|
||||||
|
top_cluster.cluster_key,
|
||||||
|
"nondirect-ge1e-h0001-0360-0004-0100-0200-p0000-0000-0000-ffff :: [864:4]"
|
||||||
|
);
|
||||||
|
assert_eq!(top_cluster.occurrence_count, 36);
|
||||||
|
assert_eq!(top_cluster.map_count, 18);
|
||||||
|
assert!(
|
||||||
|
top_cluster
|
||||||
|
.descriptor_keys
|
||||||
|
.iter()
|
||||||
|
.any(|key| key == "8 Economic Status")
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
top_cluster
|
||||||
|
.sample_map_paths
|
||||||
|
.iter()
|
||||||
|
.any(|path| path.ends_with("Britain.gmp"))
|
||||||
|
);
|
||||||
|
let mixed_cluster =
|
||||||
|
&trace.near_city_acquisition_nontransport_top_dispatch_signature_condition_clusters[1];
|
||||||
|
assert_eq!(
|
||||||
|
mixed_cluster.cluster_key,
|
||||||
|
"nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff :: [-1:4]"
|
||||||
|
);
|
||||||
|
assert_eq!(mixed_cluster.occurrence_count, 27);
|
||||||
|
assert_eq!(mixed_cluster.map_count, 14);
|
||||||
|
assert!(
|
||||||
|
mixed_cluster
|
||||||
|
.descriptor_keys
|
||||||
|
.iter()
|
||||||
|
.any(|key| key == "506 Add Building Barracks")
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
mixed_cluster
|
||||||
|
.sample_map_paths
|
||||||
|
.iter()
|
||||||
|
.any(|path| path.ends_with("Alternate USA.gmp"))
|
||||||
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
trace
|
trace
|
||||||
.near_city_acquisition_nontransport_add_building_descriptor_map_paths
|
.near_city_acquisition_nontransport_add_building_descriptor_map_paths
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue