[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); |     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] | #[test] | ||||||
| fn dot() { | fn dot() { | ||||||
|     let mut lex = Lexer::new(".".chars()); |     let mut lex = Lexer::new(".".chars()); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue