| 
									
										
										
										
											2015-01-08 11:47:04 +01:00
										 |  |  | package trie | 
					
						
							| 
									
										
										
										
											2014-11-19 15:05:08 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import "testing" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestIterator(t *testing.T) { | 
					
						
							|  |  |  | 	trie := NewEmpty() | 
					
						
							|  |  |  | 	vals := []struct{ k, v string }{ | 
					
						
							|  |  |  | 		{"do", "verb"}, | 
					
						
							|  |  |  | 		{"ether", "wookiedoo"}, | 
					
						
							|  |  |  | 		{"horse", "stallion"}, | 
					
						
							| 
									
										
										
										
											2014-11-20 18:11:31 +01:00
										 |  |  | 		{"shaman", "horse"}, | 
					
						
							|  |  |  | 		{"doge", "coin"}, | 
					
						
							|  |  |  | 		{"dog", "puppy"}, | 
					
						
							|  |  |  | 		{"somethingveryoddindeedthis is", "myothernodedata"}, | 
					
						
							| 
									
										
										
										
											2014-11-19 15:05:08 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	v := make(map[string]bool) | 
					
						
							|  |  |  | 	for _, val := range vals { | 
					
						
							|  |  |  | 		v[val.k] = false | 
					
						
							|  |  |  | 		trie.UpdateString(val.k, val.v) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2014-11-20 18:11:31 +01:00
										 |  |  | 	trie.Commit() | 
					
						
							| 
									
										
										
										
											2014-11-19 15:05:08 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	it := trie.Iterator() | 
					
						
							|  |  |  | 	for it.Next() { | 
					
						
							|  |  |  | 		v[string(it.Key)] = true | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	for k, found := range v { | 
					
						
							|  |  |  | 		if !found { | 
					
						
							|  |  |  | 			t.Error("iterator didn't find", k) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |