//! Integration tests: Manifold Engine + Hypergraph Substrate #[cfg(test)] mod manifold_hypergraph_integration { use super::*; // use exo_manifold::*; // use exo_hypergraph::*; // use exo_backend_classical::ClassicalBackend; #[test] fn test_manifold_with_hypergraph_structure() { // Test querying manifold with hypergraph topological constraints // let backend = ClassicalBackend::new(config); // let mut manifold = ManifoldEngine::new(backend.clone()); // let mut hypergraph = HypergraphSubstrate::new(backend); // // // Store patterns in manifold // let p1 = manifold.deform(pattern1, 0.8); // let p2 = manifold.deform(pattern2, 0.7); // let p3 = manifold.deform(pattern3, 0.9); // // // Create hyperedges linking patterns // let relation = Relation::new("semantic_cluster"); // hypergraph.create_hyperedge(&[p1, p2, p3], &relation).unwrap(); // // // Query manifold and verify hypergraph structure // let results = manifold.retrieve(query, 10); // // // Verify results respect hypergraph topology // for result in results { // let edges = hypergraph.hyperedges_containing(result.id); // assert!(!edges.is_empty()); // Should be connected // } } #[test] fn test_persistent_homology_on_manifold() { // Test computing persistent homology on learned manifold // let manifold = setup_manifold_with_patterns(); // let hypergraph = setup_hypergraph_from_manifold(&manifold); // // let diagram = hypergraph.persistent_homology(1, (0.0, 1.0)); // // // Verify topological features detected // assert!(diagram.num_features() > 0); } #[test] fn test_hypergraph_guided_retrieval() { // Test using hypergraph structure to guide manifold retrieval // Retrieve patterns, then expand via hyperedge traversal } }