graph_api_test/steps/
vertices.rs1use crate::{Edge, Vertex, assert_elements_eq, populate_graph};
2use graph_api_lib::{EdgeSearch, Graph, VertexSearch};
3
4pub fn test_head<T>(graph: &mut T)
5where
6 T: Graph<Vertex = Vertex, Edge = Edge>,
7{
8 let refs = populate_graph(graph);
9 let collected = graph
10 .walk()
11 .vertices_by_id(vec![refs.bryn])
12 .edges(EdgeSearch::scan().outgoing())
13 .head()
14 .collect::<Vec<_>>();
15 assert_elements_eq!(graph, collected, vec![refs.graph_api, refs.julia]);
16}
17
18pub fn test_tail<T>(graph: &mut T)
19where
20 T: Graph<Vertex = Vertex, Edge = Edge>,
21{
22 let refs = populate_graph(graph);
23 let collected = graph
24 .walk()
25 .vertices_by_id(vec![refs.bryn])
26 .edges(EdgeSearch::scan().outgoing())
27 .tail()
28 .collect::<Vec<_>>();
29 assert_elements_eq!(graph, collected, vec![refs.bryn]);
30}
31
32pub fn test_take<T>(graph: &mut T)
33where
34 T: Graph<Vertex = Vertex, Edge = Edge>,
35{
36 let refs = populate_graph(graph);
37 let collected = graph
38 .walk()
39 .vertices(VertexSearch::scan().with_limit(1))
40 .collect::<Vec<_>>();
41 assert_elements_eq!(graph, collected, vec![refs.bryn]);
42}