graph_api_test/steps/
vertices.rs

1use 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}