graph_api_test/steps/
probe.rs

1use crate::{Edge, Vertex, populate_graph};
2use graph_api_lib::{EdgeSearch, Graph, VertexSearch};
3
4pub fn test_vertices_probe<G>(graph: &mut G)
5where
6    G: Graph<Vertex = Vertex, Edge = Edge>,
7{
8    populate_graph(graph);
9
10    // Test probing vertices
11    let mut count = 0;
12    let result = graph
13        .walk()
14        .vertices(VertexSearch::scan())
15        .probe(|_, _| {
16            count += 1;
17        })
18        .collect::<Vec<_>>();
19
20    assert_eq!(count, 4); // Should match number of vertices
21    assert_eq!(result.len(), 4);
22}
23
24pub fn test_edges_probe<G>(graph: &mut G)
25where
26    G: Graph<Vertex = Vertex, Edge = Edge>,
27{
28    let refs = populate_graph(graph);
29
30    // Test probing edges
31    let mut edge_count = 0;
32    let result = graph
33        .walk()
34        .vertices_by_id([refs.bryn])
35        .edges(EdgeSearch::scan().outgoing())
36        .probe(|_, _| {
37            edge_count += 1;
38        })
39        .collect::<Vec<_>>();
40
41    assert_eq!(edge_count, 2); // Bryn has 2 outgoing edges
42    assert_eq!(result.len(), 2);
43}