43 lines
		
	
	
		
			873 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			873 B
		
	
	
	
		
			V
		
	
	
| import hash.wyhash
 | |
| 
 | |
| struct WyHashTest {
 | |
| 	s        string
 | |
| 	seed     u64
 | |
| 	expected u64
 | |
| }
 | |
| 
 | |
| fn test_wyhash() {
 | |
| 	tests := [WyHashTest{
 | |
| 		'',0,0x0},
 | |
| 	WyHashTest{
 | |
| 		'v',1,0xc72a8f8bdfdd82},
 | |
| 	WyHashTest{
 | |
| 		'is',2,0xa1099c1c58fc13e},
 | |
| 	WyHashTest{
 | |
| 		'the best',3,0x1b1215ef0b0b94c},
 | |
| 	WyHashTest{
 | |
| 		'abcdefghijklmnopqrstuvwxyz',4,0x6db0e773d1503fac},
 | |
| 	WyHashTest{
 | |
| 		'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',5,0xe062dfda99413626},
 | |
| 	]
 | |
| 	for test in tests {
 | |
| 		got := wyhash.sum64(test.s.bytes(), test.seed)
 | |
| 		// println(' #      GOT: $got | $got.hex()')
 | |
| 		// println(' # EXPECTED: $test.expected | $test.expected.hex()')
 | |
| 		assert got == test.expected
 | |
| 	}
 | |
| }
 | |
| 
 | |
| fn test_rand_u64() {
 | |
| 	seed := u64(111)
 | |
| 	mut rand_nos := []u64{}
 | |
| 	for _ in 0..40 {
 | |
| 		rand_no := wyhash.rand_u64(&seed)
 | |
| 		for r in rand_nos {
 | |
| 			assert rand_no != r
 | |
| 		}
 | |
| 		rand_nos << rand_no
 | |
| 	}
 | |
| 	assert true
 | |
| }
 |