Move lexer tests to a #[cfg(test)] mod tests { } modules
This commit is contained in:
parent
81a84a796a
commit
5a28b06434
1 changed files with 41 additions and 34 deletions
|
@ -192,43 +192,50 @@ impl Iterator for Lexer {
|
||||||
// UNIT TESTING
|
// UNIT TESTING
|
||||||
//
|
//
|
||||||
|
|
||||||
#[test]
|
#[cfg(test)]
|
||||||
fn lexer_finds_parens() {
|
mod tests {
|
||||||
let mut lexer = Lexer::new("()");
|
use std::iter::Iterator;
|
||||||
assert_next_token(&mut lexer, &Token::LeftParen("(".to_string()));
|
use super::*;
|
||||||
assert_next_token(&mut lexer, &Token::RightParen(")".to_string()));
|
use super::token::*;
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn lexer_finds_identifiers() {
|
fn lexer_finds_parens() {
|
||||||
let s = "abc";
|
let mut lexer = Lexer::new("()");
|
||||||
let mut lexer = Lexer::new(s);
|
assert_next_token(&mut lexer, &Token::LeftParen("(".to_string()));
|
||||||
assert_next_token(&mut lexer, &Token::Identifier(s.to_string()));
|
assert_next_token(&mut lexer, &Token::RightParen(")".to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn lexer_finds_booleans() {
|
fn lexer_finds_identifiers() {
|
||||||
let mut lexer = Lexer::new("#t #f");
|
let s = "abc";
|
||||||
assert_next_token(&mut lexer, &Token::Boolean(true));
|
let mut lexer = Lexer::new(s);
|
||||||
assert_next_token(&mut lexer, &Token::Boolean(false));
|
assert_next_token(&mut lexer, &Token::Identifier(s.to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn lexer_finds_comments() {
|
fn lexer_finds_booleans() {
|
||||||
let s = "; a comment";
|
let mut lexer = Lexer::new("#t #f");
|
||||||
let mut lexer = Lexer::new(s);
|
assert_next_token(&mut lexer, &Token::Boolean(true));
|
||||||
assert_next_token(&mut lexer, &Token::Comment(s.to_string()));
|
assert_next_token(&mut lexer, &Token::Boolean(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn lexer_finds_strings() {
|
fn lexer_finds_comments() {
|
||||||
let mut lexer = Lexer::new("\"\"");
|
let s = "; a comment";
|
||||||
assert_next_token(&mut lexer, &Token::String("\"\"".to_string()));
|
let mut lexer = Lexer::new(s);
|
||||||
let mut lexer = Lexer::new("\"abc\"");
|
assert_next_token(&mut lexer, &Token::Comment(s.to_string()));
|
||||||
assert_next_token(&mut lexer, &Token::String("\"abc\"".to_string()));
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fn assert_next_token(lexer: &mut Lexer, expected: &Token) {
|
#[test]
|
||||||
let lex = lexer.next().unwrap();
|
fn lexer_finds_strings() {
|
||||||
assert_eq!(lex.token, *expected);
|
let mut lexer = Lexer::new("\"\"");
|
||||||
|
assert_next_token(&mut lexer, &Token::String("\"\"".to_string()));
|
||||||
|
let mut lexer = Lexer::new("\"abc\"");
|
||||||
|
assert_next_token(&mut lexer, &Token::String("\"abc\"".to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_next_token(lexer: &mut Lexer, expected: &Token) {
|
||||||
|
let lex = lexer.next().unwrap();
|
||||||
|
assert_eq!(lex.token, *expected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue