#[path = "serialization_support/resolution_fixture.rs"]
mod resolution_fixture;
#[path = "serialization_support/resolution_seed.rs"]
mod resolution_seed;
#[path = "serialization_support/resolution_case_model.rs"]
mod resolution_case_model;
#[path = "serialization_support/resolution_cases.rs"]
mod resolution_cases;
#[path = "serialization_support/resolution_builder_cases.rs"]
mod resolution_builder_cases;
#[path = "serialization_support/resolution_asserts.rs"]
mod resolution_asserts;
#[path = "serialization_support/resolution_identity.rs"]
mod resolution_identity;
#[path = "serialization_support/resolution_decode_limits.rs"]
mod resolution_decode_limits;
#[path = "serialization_support/resolution_hostile_hint.rs"]
mod resolution_hostile_hint;
#[path = "serialization_support/finding_fixture.rs"]
mod finding_fixture;
#[path = "serialization_support/enum_spelling_cases.rs"]
mod enum_spelling_cases;
#[path = "serialization_support/finding_cases.rs"]
mod finding_cases;
#[path = "serialization_support/profile_cases.rs"]
mod profile_cases;
#[path = "serialization_support/attestation_cases.rs"]
mod attestation_cases;
#[path = "serialization_support/legacy_decode_cases.rs"]
mod legacy_decode_cases;
#[test]
fn resolution_builder_rejects_every_same_index_foreign_handle_without_mutation() {
use pedant_types::resolution::ResolutionReportLimits;
let mut local = resolution_seed::seeded_builder(ResolutionReportLimits::default());
let foreign = resolution_seed::seeded_builder(ResolutionReportLimits::default());
resolution_asserts::foreign_handles_are_refused(&mut local, &foreign);
resolution_asserts::seeded_builder_still_finishes(
local,
"no rejected operation mutated the builder",
);
}
#[test]
fn resolution_handle_and_identifier_kinds_remain_nominally_distinct() {
resolution_identity::assert_distinct_identity_families();
}
#[test]
fn resolution_identifiers_keep_the_transparent_u32_wire_shape() {
resolution_identity::assert_transparent_identifier_wire_shape();
}
#[test]
fn resolution_report_decode_limits_bound_every_top_level_collection() {
resolution_decode_limits::assert_each_collection_is_bounded();
}
#[test]
fn resolution_report_decode_limits_preserve_default_and_valid_behavior() {
resolution_decode_limits::assert_default_and_configured_valid_decoding();
}
#[test]
fn resolution_report_bounded_decode_preserves_map_field_errors() {
resolution_decode_limits::assert_map_field_errors();
}
#[test]
fn resolution_report_bounded_decode_ignores_hostile_sequence_size_hints() {
resolution_hostile_hint::assert_hostile_size_hint_is_not_observed();
}
#[test]
fn resolution_builder_enforces_configured_and_id_ceiling_capacities_without_mutation() {
use pedant_types::resolution::ResolutionReportLimits;
let mut seeded = resolution_seed::seeded_builder(ResolutionReportLimits {
max_units: 1,
max_definitions: 1,
max_references: 1,
});
resolution_asserts::configured_capacity_is_enforced(&mut seeded);
resolution_asserts::seeded_builder_still_finishes(
seeded,
"no rejected insertion mutated the builder",
);
resolution_asserts::id_ceiling_is_enforced();
}
#[test]
fn resolution_report_validation_rejects_every_malformed_invariant_family() {
let wire = resolution_cases::malformed_cases();
let builder = resolution_builder_cases::builder_cases();
resolution_asserts::every_case_produces_its_refusal(&wire, 32, "malformed family");
resolution_asserts::every_builder_case_produces_its_refusal(&builder, 13, "malformed family");
resolution_asserts::boundaries_cover_the_same_families(&wire, &builder);
resolution_asserts::one_record_per_reference();
resolution_asserts::valid_report_round_trips();
}
#[test]
fn resolution_report_enforces_unit_parent_candidate_and_certainty_rules() {
use pedant_types::resolution::ResolutionGap;
resolution_asserts::unit_containment_and_cross_unit_candidate();
resolution_asserts::possible_candidates_are_accepted(&[]);
resolution_asserts::possible_candidates_are_accepted(&[ResolutionGap::ConditionalCompilation]);
let wire = resolution_cases::certainty_cases();
let builder = resolution_builder_cases::builder_certainty_cases();
resolution_asserts::every_case_produces_its_refusal(&wire, 4, "illegal record shape");
resolution_asserts::every_builder_case_produces_its_refusal(
&builder,
4,
"illegal record shape",
);
resolution_asserts::boundaries_cover_the_same_families(&wire, &builder);
}
#[test]
fn rust_language_serializes_as_rust_and_resolution_records_use_it() {
resolution_asserts::every_record_spells_its_language_rust();
}