| 147 | use crate::engine::graph::pattern::compiler; |
| 148 | |
| 149 | fn social_graph() -> CsrIndex { |
| 150 | let mut csr = CsrIndex::new(); |
| 151 | // KNOWS: 100 edges (dense), CREATED: 5 edges (sparse) |
| 152 | for i in 0..100 { |
| 153 | csr.add_edge(&format!("p{i}"), "KNOWS", &format!("p{}", (i + 1) % 100)) |
| 154 | .unwrap(); |
| 155 | } |
| 156 | for i in 0..5 { |
| 157 | csr.add_edge(&format!("p{i}"), "CREATED", &format!("doc{i}")) |
| 158 | .unwrap(); |
| 159 | } |
| 160 | csr.compact().expect("no governor, cannot fail"); |
| 161 | csr |
| 162 | } |
| 163 | |
| 164 | #[test] |
| 165 | fn optimize_reorders_by_selectivity() { |