diff --git a/src/test/morphism.rs b/src/test/morphism.rs index 56d3059..4754575 100644 --- a/src/test/morphism.rs +++ b/src/test/morphism.rs @@ -1,5 +1,5 @@ use { - crate::{dict::*, morphism::*, morphism_base::*, morphism_base_sugared::SugaredMorphismBase, morphism_path::*, morphism_path_sugared::SugaredShortestPathProblem, morphism_sugared::{MorphismInstance2, SugaredMorphism, SugaredMorphismType}, parser::*, unparser::*, SugaredTypeTerm, TypeTerm} + crate::{dict::*, morphism::*, morphism_base::*, morphism_base_sugared::SugaredMorphismBase, morphism_path::*, morphism_path_sugared::SugaredShortestPathProblem, morphism_sugared::{MorphismInstance2, SugaredMorphism, SugaredMorphismType}, parser::*, unparser::*, SugaredTypeTerm, TypeTerm}, std::collections::HashMap }; //<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>\\ @@ -339,6 +339,37 @@ fn test_morphism_path_posint() { ) ); } + +#[test] +fn morphism_test_seq_repr() { + let mut dict = BimapTypeDict::new(); + let mut base = SugaredMorphismBase::<DummyMorphism>::new(); + + base.add_morphism( + DummyMorphism(SugaredMorphismType{ + src_type: dict.parse("<Seq~<ValueTerminated 0> native.UInt8>").unwrap().sugar(&mut dict), + dst_type: dict.parse("<Seq~<LengthPrefix native.UInt64> native.UInt8>").unwrap().sugar(&mut dict) + }) + ); + + assert_eq!( + base.get_morphism_instance(&SugaredMorphismType { + src_type: dict.parse("<Seq~<ValueTerminated 0> Char~Ascii~native.UInt8>").expect("parse").sugar(&mut dict), + dst_type: dict.parse("<Seq~<LengthPrefix native.UInt64> Char~Ascii~native.UInt8>").expect("parse").sugar(&mut dict) + }), + Some( + MorphismInstance2::Primitive { + ψ: dict.parse("<Seq Char~Ascii>").expect("").sugar(&mut dict), + σ: HashMap::new(), + morph: DummyMorphism(SugaredMorphismType{ + src_type: dict.parse("<Seq~<ValueTerminated 0> native.UInt8>").unwrap().sugar(&mut dict), + dst_type: dict.parse("<Seq~<LengthPrefix native.UInt64> native.UInt8>").unwrap().sugar(&mut dict) + }) + } + ) + ); +} + /* #[test] fn test_steiner_tree() {