mod common;
use common::*;
use wolf_graph::prelude::*;
#[test]
fn test_path_exists() {
let tests = vec![
("B", "K", true),
("B", "A", true),
("H", "A", true),
("A", "A", true),
("I", "B", true),
("G", "B", true),
("H", "D", true),
("D", "H", false),
("A", "B", false),
("F", "C", false),
("J", "I", false),
("I", "J", false),
];
let g = make_graph();
for (from, to, expected) in tests {
assert_eq!(g.path_exists(nid!(from), nid!(to)).unwrap(), expected);
}
}
#[test]
fn test_can_add_dag_edge() {
let tests = vec![
("H", "I", true),
("K", "J", true),
("C", "H", false),
("E", "B", false),
("A", "B", false),
("B", "B", false), ("B", "A", true), ];
let g = make_dag();
for (from, to, expected) in tests {
assert_eq!(g.can_add_dag_edge(nid!(from), nid!(to), None::<EdgeID>).unwrap(), expected);
}
}
#[test]
fn test_can_move_dag_edge() {
let tests = vec![
("BA", "B", "A", true),
("JA", "J", "B", true),
("JA", "H", "A", true),
("BC", "C", "J", false),
("JA", "C", "J", true),
("BG", "G", "B", false),
("IK", "K", "I", true),
("CD", "C", "C", false),
("AC", "C", "D", true),
];
let g = make_dag();
for (edge, new_source, new_target, expected) in tests {
assert_eq!(g.can_move_dag_edge(eid!(edge), nid!(new_source), nid!(new_target)).unwrap(), expected);
}
}