Make some unit tests for the lexer

This commit is contained in:
Eryn Wells 2016-12-25 14:20:25 -07:00
parent 7e784ffce1
commit 7f19c78127
2 changed files with 24 additions and 1 deletions

View file

@ -170,3 +170,25 @@ impl Iterator for Lexer {
lex
}
}
//
// TESTING
//
#[test]
fn lexer_finds_parens() {
let mut lexer = Lexer::new("()".to_string());
assert_next_token(&mut lexer, &Token::LeftParen("(".to_string()));
assert_next_token(&mut lexer, &Token::RightParen(")".to_string()));
}
#[test]
fn lexer_finds_identifiers() {
let mut lexer = Lexer::new("abc".to_string());
assert_next_token(&mut lexer, &Token::Identifier("abc".to_string()));
}
fn assert_next_token(lexer: &mut Lexer, expected: &Token) {
let lex = lexer.next().unwrap();
assert_eq!(lex.token, *expected);
}