use asdi::edb::{Constant, Predicate};
use asdi::idb::Variable;
use asdi::AttributeName;
use proptest::proptest;
use std::str::FromStr;
proptest! {
#[test]
fn predicate_from_str(s in r"\p{Ll}[\p{Ll}\p{Lu}\p{Nd}_]*") {
println!("predicate_from_str: {:?}", s);
assert!(Predicate::is_valid(&s));
assert!(Predicate::from_str(&s).is_ok());
}
#[test]
fn variable_from_str(s in r"\p{Lu}[\p{Ll}\p{Lu}\p{Nd}_]*") {
println!("variable_from_str: {:?}", s);
assert!(Variable::is_valid(&s));
assert!(Variable::from_str(&s).is_ok());
}
#[test]
fn constant_identifier_from_str(s in r"\p{Ll}[\p{Ll}\p{Lu}\p{Nd}_]*(:[\p{Ll}\p{Lu}][\p{Ll}\p{Lu}\p{Nd}_]*)?") {
println!("constant_identifier_from_str: {:?}", s);
assert!(Constant::is_identifier(&s));
}
}