diff options
Diffstat (limited to 'autonibble/tests')
-rw-r--r-- | autonibble/tests/compare/main.rs | 39 | ||||
l--------- | autonibble/tests/compare/nibble | 1 |
2 files changed, 40 insertions, 0 deletions
diff --git a/autonibble/tests/compare/main.rs b/autonibble/tests/compare/main.rs new file mode 100644 index 0000000..014cfec --- /dev/null +++ b/autonibble/tests/compare/main.rs @@ -0,0 +1,39 @@ +use chewed::{IterWrapper, Parser}; +use chomp::{ + chomp::ast::NamedExpression, + nibble::{ + self, + convert::{Context, Convert}, + }, +}; + +fn chomp(input: &str) -> NamedExpression { + syn::parse_str::<nibble::Statement>(&input) + .unwrap() + .convert(&mut Context::default()) + .unwrap() +} + +fn autonibble(input: &str) -> NamedExpression { + IterWrapper::new(input.chars()) + .parse::<autonibble::Ast>() + .unwrap() + .convert(&mut Context::default()) + .unwrap() +} + +macro_rules! compare { + ($name:ident, $file:literal) => { + #[test] + fn $name() { + let input = include_str!($file); + assert_eq!(chomp(input), autonibble(input)) + } + }; +} + +compare!(compare_sheep, "nibble/sheep.nb"); +compare!(compare_ratata, "nibble/ratata.nb"); +compare!(compare_regex, "nibble/regex.nb"); +compare!(compare_regex_fix, "nibble/regex_fix.nb"); +compare!(compare_nibble, "nibble/nibble_exp.nb"); diff --git a/autonibble/tests/compare/nibble b/autonibble/tests/compare/nibble new file mode 120000 index 0000000..bfe7e8e --- /dev/null +++ b/autonibble/tests/compare/nibble @@ -0,0 +1 @@ +../../../tests/full/nibble
\ No newline at end of file |