github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/syndtr/goleveldb/leveldb/util/hash_test.go (about)

     1  // Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
     2  // All rights reserved.
     3  //
     4  // Use of this source code is governed by a BSD-style license that can be
     5  // found in the LICENSE file.
     6  
     7  package util
     8  
     9  import (
    10  	"testing"
    11  )
    12  
    13  var hashTests = []struct {
    14  	data []byte
    15  	seed uint32
    16  	hash uint32
    17  }{
    18  	{nil, 0xbc9f1d34, 0xbc9f1d34},
    19  	{[]byte{0x62}, 0xbc9f1d34, 0xef1345c4},
    20  	{[]byte{0xc3, 0x97}, 0xbc9f1d34, 0x5b663814},
    21  	{[]byte{0xe2, 0x99, 0xa5}, 0xbc9f1d34, 0x323c078f},
    22  	{[]byte{0xe1, 0x80, 0xb9, 0x32}, 0xbc9f1d34, 0xed21633a},
    23  	{[]byte{
    24  		0x01, 0xc0, 0x00, 0x00,
    25  		0x00, 0x00, 0x00, 0x00,
    26  		0x00, 0x00, 0x00, 0x00,
    27  		0x00, 0x00, 0x00, 0x00,
    28  		0x14, 0x00, 0x00, 0x00,
    29  		0x00, 0x00, 0x04, 0x00,
    30  		0x00, 0x00, 0x00, 0x14,
    31  		0x00, 0x00, 0x00, 0x18,
    32  		0x28, 0x00, 0x00, 0x00,
    33  		0x00, 0x00, 0x00, 0x00,
    34  		0x02, 0x00, 0x00, 0x00,
    35  		0x00, 0x00, 0x00, 0x00,
    36  	}, 0x12345678, 0xf333dabb},
    37  }
    38  
    39  func TestHash(t *testing.T) {
    40  	for i, x := range hashTests {
    41  		h := Hash(x.data, x.seed)
    42  		if h != x.hash {
    43  			t.Fatalf("test-%d: invalid hash, %#x vs %#x", i, h, x.hash)
    44  		}
    45  	}
    46  }