| 
									
										
										
										
											2025-07-16 22:29:28 +08:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-13 00:29:41 +08:00
										 |  |  | const { numberToIdentifier } = require("../lib/Template"); | 
					
						
							| 
									
										
										
										
											2025-07-03 17:06:45 +08:00
										 |  |  | const numberHash = require("../lib/util/numberHash"); | 
					
						
							| 
									
										
										
										
											2019-02-20 18:32:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | describe("numberHash", () => { | 
					
						
							|  |  |  | 	for (const n of [10, 100, 1000, 10000]) { | 
					
						
							|  |  |  | 		it("should eventually fill nearly the complete range up to n", () => { | 
					
						
							|  |  |  | 			const set = new Set(); | 
					
						
							|  |  |  | 			for (let i = 0; i < n * 200; i++) { | 
					
						
							| 
									
										
										
										
											2019-04-13 00:29:41 +08:00
										 |  |  | 				set.add(numberHash(numberToIdentifier(i), n)); | 
					
						
							| 
									
										
										
										
											2019-02-20 18:32:12 +08:00
										 |  |  | 				if (set.size >= n - 1) break; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			expect(set.size).toBeGreaterThanOrEqual(n - 1); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); |