add test with mixed constraints
This commit is contained in:
parent
0cd80c16d5
commit
cb9b62b00c
2 changed files with 60 additions and 0 deletions
59
src/test/constraint_system/mixed.rs
Normal file
59
src/test/constraint_system/mixed.rs
Normal file
|
@ -0,0 +1,59 @@
|
|||
use {
|
||||
crate::{dict::*, parser::*,
|
||||
constraint_system::{
|
||||
ConstraintSystem,
|
||||
ConstraintPair,
|
||||
ConstraintError
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>\\
|
||||
|
||||
#[test]
|
||||
fn test_mixed_trait_bounds() {
|
||||
let mut dict = BimapTypeDict::new();
|
||||
|
||||
dict.add_varname("T".into());
|
||||
dict.add_varname("Radix".into());
|
||||
|
||||
assert_eq!(
|
||||
ConstraintSystem::new(
|
||||
// eq constraints
|
||||
vec![],
|
||||
|
||||
// sub constraints
|
||||
vec![
|
||||
ConstraintPair {
|
||||
addr: Vec::new(),
|
||||
lhs : dict.parse("ℕ ~ <PosInt 10 BigEndian> ~ <Seq <Digit 10>~Char~native.UInt8>").unwrap(),
|
||||
rhs : dict.parse("<Seq T>").unwrap()
|
||||
}
|
||||
],
|
||||
|
||||
// trait constraints
|
||||
vec![
|
||||
ConstraintPair {
|
||||
addr: Vec::new(),
|
||||
lhs: dict.parse("T").unwrap(),
|
||||
rhs: dict.parse("<Digit Radix>").unwrap(),
|
||||
}
|
||||
],
|
||||
|
||||
// parallel constraints
|
||||
vec![]
|
||||
).solve(),
|
||||
Ok((
|
||||
// ψ
|
||||
vec![
|
||||
dict.parse("ℕ ~ <PosInt 10 BigEndian>").unwrap()
|
||||
],
|
||||
|
||||
// σ
|
||||
vec![
|
||||
(dict.get_typeid(&"T".into()).unwrap(), dict.parse("<Digit 10>~Char~native.UInt8").unwrap()),
|
||||
(dict.get_typeid(&"Radix".into()).unwrap(), dict.parse("10").unwrap())
|
||||
].into_iter().collect()
|
||||
))
|
||||
);
|
||||
}
|
|
@ -3,3 +3,4 @@ pub mod sub_constraint;
|
|||
pub mod trait_constraint;
|
||||
pub mod par_cornstraint;
|
||||
pub mod value_constraint;
|
||||
pub mod mixed;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue