58 lines
2.4 KiB
Rust
58 lines
2.4 KiB
Rust
#[cfg(test)]
|
|
mod test {
|
|
use crate::grammar;
|
|
use grammar::AtomParser as Parser;
|
|
#[test]
|
|
fn int_literals() {
|
|
assert!(Parser::new().parse("22").is_ok());
|
|
assert!(Parser::new().parse("(22)").is_ok());
|
|
assert!(Parser::new().parse("((22))").is_ok());
|
|
}
|
|
|
|
#[test]
|
|
fn test_float_dots() {
|
|
assert!(Parser::new().parse("1.1").is_ok());
|
|
assert!(Parser::new().parse("-1.1").is_ok());
|
|
assert!(Parser::new().parse(".1").is_ok());
|
|
assert!(Parser::new().parse("-.1").is_ok());
|
|
}
|
|
|
|
#[test]
|
|
fn test_float_exps() {
|
|
assert!(Parser::new().parse("(1e1)").is_ok());
|
|
assert!(Parser::new().parse("(-1e1)").is_ok());
|
|
assert!(Parser::new().parse("(1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(1E1)").is_ok());
|
|
assert!(Parser::new().parse("(-1E1)").is_ok());
|
|
assert!(Parser::new().parse("(1E-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1E-1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1e1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1e1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1E1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1E1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1E-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1E-1)").is_ok());
|
|
|
|
assert!(Parser::new().parse("(1.0e1)").is_ok());
|
|
assert!(Parser::new().parse("(-0.1e1)").is_ok());
|
|
assert!(Parser::new().parse("(1.0e-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.0e-1)").is_ok());
|
|
assert!(Parser::new().parse("(1.E1)").is_err());
|
|
assert!(Parser::new().parse("(-1E1)").is_ok());
|
|
assert!(Parser::new().parse("(1E-10)").is_ok());
|
|
assert!(Parser::new().parse("(-1E-1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1e1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1e1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1e-1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1E1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1E1)").is_ok());
|
|
assert!(Parser::new().parse("(1.1E-1)").is_ok());
|
|
assert!(Parser::new().parse("(-1.1E-1)").is_ok());
|
|
assert!(Parser::new().parse("FOOBAR").is_err());
|
|
}
|
|
}
|