Add docs for MakeTestGraph generator methods
This commit is contained in:
@@ -5,6 +5,7 @@ use crate::models::{AppendGraph, FrozenGraph};
|
|||||||
use crate::traits::{GraphTopology, GraphTopologyAddition, GraphTopologyConversion, Incidence};
|
use crate::traits::{GraphTopology, GraphTopologyAddition, GraphTopologyConversion, Incidence};
|
||||||
|
|
||||||
pub trait MakeTestGraph: GraphTopology + Sized {
|
pub trait MakeTestGraph: GraphTopology + Sized {
|
||||||
|
/// Returns a versatile, pre-defined standard test graph.
|
||||||
// Since this is only a test fixture, the complex return type here is deemed acceptable.
|
// Since this is only a test fixture, the complex return type here is deemed acceptable.
|
||||||
#[allow(clippy::type_complexity)]
|
#[allow(clippy::type_complexity)]
|
||||||
fn standard() -> (
|
fn standard() -> (
|
||||||
@@ -14,20 +15,32 @@ pub trait MakeTestGraph: GraphTopology + Sized {
|
|||||||
[Vec<Incidence<Self::Vertex, Self::Edge>>; 10],
|
[Vec<Incidence<Self::Vertex, Self::Edge>>; 10],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// Returns an empty graph.
|
||||||
fn empty() -> Self;
|
fn empty() -> Self;
|
||||||
|
|
||||||
|
/// Returns a graph with a single vertex and no edges.
|
||||||
fn single_vertex() -> (Self, Self::Vertex);
|
fn single_vertex() -> (Self, Self::Vertex);
|
||||||
|
|
||||||
|
/// Returns a graph with two vertices connected by a single edge.
|
||||||
fn single_edge() -> (Self, [Self::Vertex; 2], Self::Edge);
|
fn single_edge() -> (Self, [Self::Vertex; 2], Self::Edge);
|
||||||
|
|
||||||
|
/// Returns a graph with vertices *v0*, *v1*, and *v2*, where *v0* is isolated, and the other
|
||||||
|
/// two are connected by a single edge.
|
||||||
fn disconnected() -> (Self, [Self::Vertex; 3]);
|
fn disconnected() -> (Self, [Self::Vertex; 3]);
|
||||||
|
|
||||||
|
/// Returns a graph with a single vertex that has a single loop edge.
|
||||||
fn loop_edge() -> (Self, Self::Vertex, Self::Edge);
|
fn loop_edge() -> (Self, Self::Vertex, Self::Edge);
|
||||||
|
|
||||||
|
/// Returns a graph with two vertices that are connected by `K` multi-edges.
|
||||||
fn multiple_edges<const K: usize>() -> (Self, [Self::Vertex; 2], [Self::Edge; K]);
|
fn multiple_edges<const K: usize>() -> (Self, [Self::Vertex; 2], [Self::Edge; K]);
|
||||||
|
|
||||||
|
/// Returns a graph that is a path with three vertices and two edges between them, returned in
|
||||||
|
/// order.
|
||||||
fn two_edge_path() -> (Self, [Self::Vertex; 3], [Self::Edge; 2]);
|
fn two_edge_path() -> (Self, [Self::Vertex; 3], [Self::Edge; 2]);
|
||||||
|
|
||||||
|
/// Returns a graph that is a path with three vertices *v0*, *v1*, and *v2*, and two edges
|
||||||
|
/// *e0 = (v0, v1)* and *e1 = (v1, v2)* between them, and two loops on the first two vertices
|
||||||
|
/// *e2 = (v0, v0)* and *e3 = (v1, v1)*.
|
||||||
fn two_edge_path_with_loops() -> (Self, [Self::Vertex; 3], [Self::Edge; 4]);
|
fn two_edge_path_with_loops() -> (Self, [Self::Vertex; 3], [Self::Edge; 4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user