use crate::Degree;
pub trait IsPendant {
#[must_use]
fn is_pendant(&self, u: usize) -> bool;
}
impl<D> IsPendant for D
where
D: Degree,
{
fn is_pendant(&self, u: usize) -> bool {
self.degree(u) == 1
}
}
#[macro_export]
macro_rules! test_is_pendant {
($fixture:path) => {
use $fixture::{
bang_jensen_34,
bang_jensen_94,
bang_jensen_196,
kattis_builddeps,
kattis_cantinaofbabel_1,
kattis_cantinaofbabel_2,
kattis_escapewallmaria_1,
kattis_escapewallmaria_2,
kattis_escapewallmaria_3,
};
#[test]
fn is_pendant_bang_jensen_196() {
let digraph = bang_jensen_196();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
}
#[test]
fn is_pendant_bang_jensen_34() {
let digraph = bang_jensen_34();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
}
#[test]
fn is_pendant_bang_jensen_94() {
let digraph = bang_jensen_94();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(digraph.is_pendant(6));
}
#[test]
fn is_pendant_kattis_builddeps() {
let digraph = kattis_builddeps();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
}
#[test]
fn is_pendant_kattis_cantinaofbabel_1() {
let digraph = kattis_cantinaofbabel_1();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
assert!(!digraph.is_pendant(8));
assert!(!digraph.is_pendant(9));
assert!(!digraph.is_pendant(10));
assert!(!digraph.is_pendant(11));
}
#[test]
fn is_pendant_kattis_cantinaofbabel_2() {
let digraph = kattis_cantinaofbabel_2();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
assert!(!digraph.is_pendant(8));
assert!(!digraph.is_pendant(9));
assert!(!digraph.is_pendant(10));
assert!(!digraph.is_pendant(11));
}
#[test]
fn is_pendant_kattis_escapewallmaria_1() {
let digraph = kattis_escapewallmaria_1();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
assert!(!digraph.is_pendant(8));
assert!(!digraph.is_pendant(9));
assert!(!digraph.is_pendant(10));
assert!(!digraph.is_pendant(11));
assert!(digraph.is_pendant(12));
assert!(!digraph.is_pendant(13));
assert!(!digraph.is_pendant(14));
assert!(!digraph.is_pendant(15));
}
#[test]
fn is_pendant_kattis_escapewallmaria_2() {
let digraph = kattis_escapewallmaria_2();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
assert!(!digraph.is_pendant(8));
assert!(!digraph.is_pendant(9));
assert!(!digraph.is_pendant(10));
assert!(!digraph.is_pendant(11));
assert!(!digraph.is_pendant(12));
assert!(!digraph.is_pendant(13));
assert!(!digraph.is_pendant(14));
assert!(!digraph.is_pendant(15));
}
#[test]
fn is_pendant_kattis_escapewallmaria_3() {
let digraph = kattis_escapewallmaria_3();
assert!(!digraph.is_pendant(0));
assert!(!digraph.is_pendant(1));
assert!(!digraph.is_pendant(2));
assert!(!digraph.is_pendant(3));
assert!(!digraph.is_pendant(4));
assert!(!digraph.is_pendant(5));
assert!(!digraph.is_pendant(6));
assert!(!digraph.is_pendant(7));
assert!(!digraph.is_pendant(8));
assert!(!digraph.is_pendant(9));
assert!(!digraph.is_pendant(10));
assert!(!digraph.is_pendant(11));
assert!(!digraph.is_pendant(12));
assert!(!digraph.is_pendant(13));
assert!(!digraph.is_pendant(14));
assert!(!digraph.is_pendant(15));
}
};
}