[lexer] Move number integration tests to their own module
This commit is contained in:
parent
e7273d6c98
commit
9d40cdd995
2 changed files with 35 additions and 16 deletions
35
lexer/tests/numbers.rs
Normal file
35
lexer/tests/numbers.rs
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* lexer/tests/numbers.rs
|
||||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
//! Tests for lexing numbers.
|
||||
|
||||
extern crate sibillexer;
|
||||
|
||||
use sibillexer::{Lexer, Lex, Token};
|
||||
|
||||
#[test]
|
||||
fn ints_simple() {
|
||||
let mut lex = Lexer::new("23 42 0".chars());
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(23), "23", 0, 0))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(42), "42", 0, 3))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0), "0", 0, 6))));
|
||||
assert_eq!(lex.next(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ints_negative() {
|
||||
let mut lex = Lexer::new("-56".chars());
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(-56), "-56", 0, 0))));
|
||||
assert_eq!(lex.next(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ints_alternative_bases() {
|
||||
let mut lex = Lexer::new("#x2A #b11001 #o56 #d78".chars());
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0x2A), "#x2A", 0, 0))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0b11001), "#b11001", 0, 5))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0o56), "#o56", 0, 13))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(78), "#d78", 0, 18))));
|
||||
assert_eq!(lex.next(), None);
|
||||
}
|
|
@ -73,22 +73,6 @@ fn bool_with_spaces() {
|
|||
assert_eq!(lex.next(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn simple_integers() {
|
||||
let mut lex = Lexer::new("23 42".chars());
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(23), "23", 0, 0))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(42), "42", 0, 3))));
|
||||
assert_eq!(lex.next(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn integers_in_alternative_bases() {
|
||||
let mut lex = Lexer::new("#x2A #b11001".chars());
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0x2A), "#x2A", 0, 0))));
|
||||
assert_eq!(lex.next(), Some(Ok(Lex::new(Token::Num(0b11001), "#b11001", 0, 5))));
|
||||
assert_eq!(lex.next(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dot() {
|
||||
let mut lex = Lexer::new(".".chars());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue