Tests added for ASTExpression literals
This commit is contained in:
		| @@ -1,16 +1,16 @@ | ||||
|  | ||||
|  | ||||
| #[test] | ||||
| fn identifiers() { | ||||
|     use crate::expressions::IdentifierParser as IdentParser; | ||||
|     assert!(IdentParser::new().parse("a").is_ok()); | ||||
|     assert!(IdentParser::new().parse("_").is_ok()); | ||||
|     assert!(IdentParser::new().parse("a_a_a_").is_ok()); | ||||
|     assert!(IdentParser::new().parse("_0").is_ok()); | ||||
|     assert!(IdentParser::new().parse("_a").is_ok()); | ||||
|     assert!(IdentParser::new().parse("__").is_ok()); | ||||
|  | ||||
|     assert!(IdentParser::new().parse("0").is_err()); | ||||
|     assert!(IdentParser::new().parse("0123456").is_err()); | ||||
|     assert!(IdentParser::new().parse("0aaaa").is_err()); | ||||
| } | ||||
| // | ||||
| // | ||||
| // #[test] | ||||
| // fn identifiers() { | ||||
| //     use crate::expressions::IdentifierParser as IdentParser; | ||||
| //     assert!(IdentParser::new().parse("a").is_ok()); | ||||
| //     assert!(IdentParser::new().parse("_").is_ok()); | ||||
| //     assert!(IdentParser::new().parse("a_a_a_").is_ok()); | ||||
| //     assert!(IdentParser::new().parse("_0").is_ok()); | ||||
| //     assert!(IdentParser::new().parse("_a").is_ok()); | ||||
| //     assert!(IdentParser::new().parse("__").is_ok()); | ||||
| // | ||||
| //     assert!(IdentParser::new().parse("0").is_err()); | ||||
| //     assert!(IdentParser::new().parse("0123456").is_err()); | ||||
| //     assert!(IdentParser::new().parse("0aaaa").is_err()); | ||||
| // } | ||||
| @@ -1,6 +1,5 @@ | ||||
| use crate::literals::AtomParser as Parser; | ||||
| use std::any::type_name_of_val; | ||||
| use std::convert::identity; | ||||
| use crate::ast::literal::Literal; | ||||
| use crate::expressions::AtomParser as Parser; | ||||
|  | ||||
| #[test] | ||||
| fn int_literals() { | ||||
| @@ -28,7 +27,7 @@ fn test_float_dots() { | ||||
|  | ||||
| #[test] | ||||
| fn test_float_exps() { | ||||
|     let parser = crate::literals::FloatParser::new(); | ||||
|     let parser = crate::expressions::FloatParser::new(); | ||||
|  | ||||
|     let valid_float_exps: Vec<&str> = vec![ | ||||
|         "1e1", "-1e1", "1e-1", "-1e-1", "1.1e1", "1.1e-1", "-1.1e1", "-1.1e-1", ".1e1", "-.1e1", | ||||
| @@ -36,14 +35,46 @@ fn test_float_exps() { | ||||
|         "-.1E1", "-.1E-1", | ||||
|     ]; | ||||
|  | ||||
|     let invalid_float_exps: Vec<&str> = vec!["AAAAAAAAAAAAAAA", "1.e1", "1e1.1", "1.1e1.1", "-1e1.1", "1e-1.1"]; | ||||
|     let invalid_float_exps: Vec<&str> = vec![ | ||||
|         "AAAAAAAAAAAAAAA", | ||||
|         "1.e1", | ||||
|         "1e1.1", | ||||
|         "1.1e1.1", | ||||
|         "-1e1.1", | ||||
|         "1e-1.1", | ||||
|     ]; | ||||
|  | ||||
|     assert!( | ||||
|         valid_float_exps | ||||
|             .into_iter() | ||||
|             .all(|s| parser.parse(s).is_ok()) | ||||
|     ); | ||||
|     assert!(invalid_float_exps | ||||
|         .into_iter() | ||||
|         .all(|s| parser.parse(s).is_err())); | ||||
|     assert!( | ||||
|         invalid_float_exps | ||||
|             .into_iter() | ||||
|             .all(|s| parser.parse(s).is_err()) | ||||
|     ); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn test_atom_parser() { | ||||
|     use crate::ast::literal::Literal; | ||||
|     let parser = crate::expressions::AtomParser::new(); | ||||
|  | ||||
|     let parsed_int_atom = parser.parse("123"); | ||||
|     assert!(matches!(parsed_int_atom, Ok(Literal::Int(_)))); | ||||
|  | ||||
|     let parsed_int_atom = parser.parse("-1.12345"); | ||||
|     assert!(matches!(parsed_int_atom, Ok(Literal::Float(_)))); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn test_expr_parser() { | ||||
|     let parser = crate::expressions::ASTExpressionParser::new(); | ||||
|  | ||||
|     let parsed_int_expr = parser.parse("123"); | ||||
|     assert!(matches!(parsed_int_expr, Ok(Literal::Int(_)))); | ||||
|  | ||||
|     let parsed_int_expr = parser.parse("-4.20E-69"); | ||||
|     assert!(matches!(parsed_int_expr, Ok(Literal::Float(_)))); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user