46 lines
		
	
	
		
			889 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			889 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() {
 | 
						|
	// QTODO
 | 
						|
	/*
 | 
						|
	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
 | 
						|
}
 |