use mesh_sieve::topology::arrow::Polarity;
use mesh_sieve::topology::point::PointId;
use mesh_sieve::topology::sieve::{InMemorySieve, Sieve};
pub fn tiny_oriented_mesh() -> InMemorySieve<PointId, Polarity> {
let mut s: InMemorySieve<PointId, Polarity> = InMemorySieve::default();
let e = |i: u64| PointId::new(100 + i).unwrap();
let q = |i: u64| PointId::new(200 + i).unwrap();
Sieve::add_arrow(&mut s, q(0), e(0), Polarity::Forward);
Sieve::add_arrow(&mut s, q(0), e(1), Polarity::Forward);
Sieve::add_arrow(&mut s, q(0), e(2), Polarity::Reverse); Sieve::add_arrow(&mut s, q(0), e(3), Polarity::Forward);
Sieve::add_arrow(&mut s, q(1), e(2), Polarity::Forward);
Sieve::add_arrow(&mut s, q(1), e(4), Polarity::Forward);
Sieve::add_arrow(&mut s, q(1), e(5), Polarity::Forward);
Sieve::add_arrow(&mut s, q(1), e(6), Polarity::Forward);
s
}
pub fn tiny_dual_graph_edges() -> Vec<(usize, usize)> {
vec![(0, 1)]
}