89 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			V
		
	
	
| enum Color{
 | |
|     red, green, blue
 | |
| }
 | |
| 
 | |
| fn test_match_integers() {
 | |
| 	// a := 3 
 | |
| 	// mut b := 0 
 | |
| 	// match a {
 | |
| 	//    2 => println('two') 
 | |
| 	//    3 => println('three') 
 | |
| 	//         b = 3 
 | |
| 	//    4 => println('four') 
 | |
| 	// else => println('???') 
 | |
| 	// } 
 | |
| 	// assert b == 3 
 | |
| 
 | |
|     assert match 2 {
 | |
|         1 => {2}
 | |
|         2 => {3}
 | |
|         else => {5}
 | |
|     } == 3
 | |
|     
 | |
|     assert match 0 {
 | |
|         1 => {2}
 | |
|         2 => {3}
 | |
|         else => 5
 | |
|     } == 5
 | |
| 
 | |
|     assert match 1 {
 | |
|         else => {5}
 | |
|     } == 5
 | |
|     
 | |
|     mut a := 0
 | |
|     match 2 {
 | |
|         0 => {a = 1}
 | |
|         1 => {a = 2}
 | |
|         else => {
 | |
|             a = 3
 | |
|             println('a is $a')
 | |
|         }
 | |
|     }
 | |
|     assert a == 3
 | |
|     
 | |
|     a = 0
 | |
|     match 1 {
 | |
|         0 => {a = 1}
 | |
|         1 => {
 | |
|             a = 2
 | |
|             a = a + 2
 | |
|             a = a + 2
 | |
|         }
 | |
|     }
 | |
|     assert a == 6
 | |
| 
 | |
|     a = 0
 | |
|     match 1 {
 | |
|         else => {
 | |
|             a = -2
 | |
|         }
 | |
|     }
 | |
|     assert a == -2
 | |
| } 
 | |
| 
 | |
| fn test_match_enums(){
 | |
|     mut b := Color.red
 | |
|     match b{
 | |
|         .red => {
 | |
|             b = .green
 | |
|         }
 | |
|         .green => {b = .blue}
 | |
|         else => {
 | |
|             println('b is ${b.str()}')
 | |
|             b = .red
 | |
|         }
 | |
|     }
 | |
|     assert b == .green
 | |
| 
 | |
|     match b{
 | |
|         .red => {
 | |
|             b = .green
 | |
|         }
 | |
|         else => {
 | |
|             println('b is ${b.str()}')
 | |
|             b = .blue
 | |
|         }
 | |
|     }
 | |
|     assert b == .blue
 | |
| }
 |