//! Validate the workspace-root `README.md` Documentation table cites the //! BFLD crate. crates.io won't show this, but new contributors browsing //! `ruvnet/RuView` on GitHub will — the entry is the primary discovery //! path for operators looking for "WiFi sensing privacy layer". #![cfg(feature = "std")] const ROOT_README: &str = include_str!("../../../../README.md"); #[test] fn root_readme_links_to_bfld_crate_readme() { assert!( ROOT_README.contains("v2/crates/wifi-densepose-bfld/README.md"), "root README must link to the BFLD crate README from the Documentation table", ); } #[test] fn root_readme_mentions_bfld_acronym_and_full_name() { assert!( ROOT_README.contains("BFLD"), "root README must mention the BFLD acronym", ); assert!( ROOT_README.contains("Beamforming Feedback Layer for Detection"), "root README must expand the BFLD acronym at least once", ); } #[test] fn root_readme_cites_all_six_bfld_adrs() { for adr in ["ADR-118", "ADR-119", "ADR-120", "ADR-121", "ADR-122", "ADR-123"] { assert!( ROOT_README.contains(adr), "root README must cite {adr} so the discovery path is intact", ); } } #[test] fn root_readme_points_at_research_bundle() { assert!( ROOT_README.contains("docs/research/BFLD/"), "root README must point at the BFLD research dossier", ); } #[test] fn root_readme_documents_three_structural_invariants_in_summary() { // The doc-table summary is short, but it should still mention the // three I1/I2/I3 invariants since they're the single most operator- // visible property of BFLD. assert!( ROOT_README.contains("raw BFI never exits"), "root README must mention invariant I1 in the BFLD summary", ); assert!( ROOT_README.contains("in-RAM-only") || ROOT_README.contains("in-RAM only"), "root README must mention invariant I2 in the BFLD summary", ); assert!( ROOT_README.contains("cross-site"), "root README must mention invariant I3 in the BFLD summary", ); }