use rrt_runtime::summary::RuntimeSummary;

use super::ExpectedRuntimeSummary;

mod collections;
mod packed_events;
mod selected_company;
mod world;

impl ExpectedRuntimeSummary {
    pub fn compare(&self, actual: &RuntimeSummary) -> Vec<String> {
        let mut mismatches = Vec::new();

        world::compare_world(self, actual, &mut mismatches);
        selected_company::compare_selected_company(self, actual, &mut mismatches);
        collections::compare_collections_prefix(self, actual, &mut mismatches);
        packed_events::compare_packed_events(self, actual, &mut mismatches);
        collections::compare_collections_suffix(self, actual, &mut mismatches);

        mismatches
    }
}
