From 9d40cdd9958659acff66f053913e06a7e384fce2 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 12 Sep 2018 08:12:06 -0700 Subject: [PATCH] [lexer] Move number integration tests to their own module --- lexer/tests/numbers.rs | 35 +++++++++++++++++++++++++++++++++++ lexer/tests/single_tokens.rs | 16 ---------------- 2 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 lexer/tests/numbers.rs diff --git a/lexer/tests/numbers.rs b/lexer/tests/numbers.rs new file mode 100644 index 0000000..2940a7c --- /dev/null +++ b/lexer/tests/numbers.rs @@ -0,0 +1,35 @@ +/* lexer/tests/numbers.rs + * Eryn Wells + */ + +//! 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); +} diff --git a/lexer/tests/single_tokens.rs b/lexer/tests/single_tokens.rs index f60481c..819e203 100644 --- a/lexer/tests/single_tokens.rs +++ b/lexer/tests/single_tokens.rs @@ -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());