[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