Skip to content

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
aborgna-q committed Oct 17, 2024
1 parent 40a0b2a commit 98990b9
Showing 1 changed file with 25 additions and 3 deletions.
28 changes: 25 additions & 3 deletions hugr-core/src/package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ fn to_module_hugr(mut hugr: Hugr) -> Result<Hugr, PackageError> {
}

/// Error raised while loading a package.
#[derive(Debug, Display, Error)]
#[derive(Debug, Display, Error, PartialEq)]
#[non_exhaustive]
pub enum PackageError {
/// A hugr in the package does not have an [OpType::Module] root.
Expand Down Expand Up @@ -262,10 +262,12 @@ pub enum PackageValidationError {

#[cfg(test)]
mod test {
use cool_asserts::assert_matches;

use crate::builder::test::{
simple_cfg_hugr, simple_dfg_hugr, simple_funcdef_hugr, simple_module_hugr,
};
use crate::extension::ExtensionId;
use crate::extension::{ExtensionId, EMPTY_REG};
use crate::ops::dataflow::IOTrait;
use crate::ops::Input;

Expand Down Expand Up @@ -310,7 +312,7 @@ mod test {
#[case::cfg(simple_cfg_hugr(), false)]
#[case::unsupported_input(simple_input_node(), true)]
fn hugr_to_package(#[case] hugr: Hugr, #[case] errors: bool) {
match (Package::from_hugr(hugr), errors) {
match (&Package::from_hugr(hugr.clone()), errors) {
(Ok(package), false) => {
assert_eq!(package.modules.len(), 1);
let root_op = package.modules[0].get_optype(package.modules[0].root());
Expand All @@ -320,4 +322,24 @@ mod test {
(p, _) => panic!("Unexpected result {:?}", p),
}
}

#[rstest]
fn package_properties() {
let module = simple_module_hugr();
let dfg = simple_dfg_hugr();

assert_matches!(
Package::new([module.clone(), dfg.clone()], []),
Err(PackageError::NonModuleHugr {
module_index: 1,
root_op: OpType::DFG(_),
})
);

let mut pkg = Package::from_hugrs([module, dfg], []).unwrap();
let mut reg = EMPTY_REG.clone();
pkg.validate(&mut reg).unwrap();

assert_eq!(pkg.modules.len(), 2);
}
}

0 comments on commit 98990b9

Please sign in to comment.