@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// See the License for the specific language governing permissions and
// limitations under the License.
// limitations under the License.
# include "absl/hash/internal/wy hash.h"
# include "absl/hash/internal/low_level_ hash.h"
# include "absl/strings/escaping.h"
# include "absl/strings/escaping.h"
# include "gmock/gmock.h"
# include "gmock/gmock.h"
@ -28,47 +28,47 @@ static const uint64_t kSalt[5] = {0xa0761d6478bd642f, 0xe7037ed1a0b428dbl,
// Note: We don't account for endianness, so the values here are only correct if
// Note: We don't account for endianness, so the values here are only correct if
// you're also running on a little endian platform.
// you're also running on a little endian platform.
TEST ( Wyh ashTest, EmptyString ) {
TEST ( LowLevelH ashTest, EmptyString ) {
const std : : string s = " " ;
const std : : string s = " " ;
EXPECT_EQ (
EXPECT_EQ ( absl : : hash_internal : : LowLevelHash ( s . c_str ( ) , s . length ( ) ,
absl : : hash_internal : : Wyhash ( s . c_str ( ) , s . length ( ) , kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
4808886099364463827 ) ;
4808886099364463827 ) ;
}
}
TEST ( Wyh ashTest, Spaces ) {
TEST ( LowLevelH ashTest, Spaces ) {
const std : : string s = " " ;
const std : : string s = " " ;
EXPECT_EQ (
EXPECT_EQ ( absl : : hash_internal : : LowLevelHash ( s . c_str ( ) , s . length ( ) ,
absl : : hash_internal : : Wyhash ( s . c_str ( ) , s . length ( ) , kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
1686201463024549249 ) ;
1686201463024549249 ) ;
}
}
TEST ( Wyh ashTest, RepeatingString ) {
TEST ( LowLevelH ashTest, RepeatingString ) {
const std : : string s = " aaaa " ;
const std : : string s = " aaaa " ;
EXPECT_EQ (
EXPECT_EQ ( absl : : hash_internal : : LowLevelHash ( s . c_str ( ) , s . length ( ) ,
absl : : hash_internal : : Wyhash ( s . c_str ( ) , s . length ( ) , kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
6646112255271966632 ) ;
6646112255271966632 ) ;
}
}
TEST ( Wyh ashTest, HexString ) {
TEST ( LowLevelH ashTest, HexString ) {
const std : : string small = " \x01 \x02 \x03 " ;
const std : : string small = " \x01 \x02 \x03 " ;
const std : : string med = " \x01 \x02 \x03 \x04 " ;
const std : : string med = " \x01 \x02 \x03 \x04 " ;
EXPECT_EQ ( absl : : hash_internal : : Wyh ash( small . c_str ( ) , small . length ( ) ,
EXPECT_EQ ( absl : : hash_internal : : LowLevelH ash( small . c_str ( ) , small . length ( ) ,
kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
11989428023081740911ULL ) ;
11989428023081740911ULL ) ;
EXPECT_EQ ( absl : : hash_internal : : Wyh ash( med . c_str ( ) , med . length ( ) , kCurrentSeed ,
EXPECT_EQ ( absl : : hash_internal : : LowLevelH ash( med . c_str ( ) , med . length ( ) ,
kSalt ) ,
kCurrentSeed , kSalt ) ,
9765997711188871556ULL ) ;
9765997711188871556ULL ) ;
}
}
TEST ( Wyh ashTest, Words ) {
TEST ( LowLevelH ashTest, Words ) {
const std : : string s = " third_party|wyhash|64 " ;
const std : : string s = " third_party|wyhash|64 " ;
EXPECT_EQ (
EXPECT_EQ ( absl : : hash_internal : : LowLevelHash ( s . c_str ( ) , s . length ( ) ,
absl : : hash_internal : : Wyhash ( s . c_str ( ) , s . length ( ) , kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
3702018632387611330 ) ;
3702018632387611330 ) ;
}
}
TEST ( Wyh ashTest, LongString ) {
TEST ( LowLevelH ashTest, LongString ) {
const std : : string s =
const std : : string s =
" AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz "
" AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz "
" 0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOp "
" 0123456789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOp "
@ -76,12 +76,12 @@ TEST(WyhashTest, LongString) {
" GhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz012345 "
" GhIjKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMnOpQrStUvWxYz012345 "
" 6789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789 " ;
" 6789AbCdEfGhIjKlMnOpQrStUvWxYz0123456789 " ;
EXPECT_EQ (
EXPECT_EQ ( absl : : hash_internal : : LowLevelHash ( s . c_str ( ) , s . length ( ) ,
absl : : hash_internal : : Wyhash ( s . c_str ( ) , s . length ( ) , kCurrentSeed , kSalt ) ,
kCurrentSeed , kSalt ) ,
9245411362605796064ULL ) ;
9245411362605796064ULL ) ;
}
}
TEST ( Wyh ashTest, BigReference ) {
TEST ( LowLevelH ashTest, BigReference ) {
struct ExpectedResult {
struct ExpectedResult {
absl : : string_view base64_data ;
absl : : string_view base64_data ;
uint64_t seed ;
uint64_t seed ;
@ -477,8 +477,8 @@ TEST(WyhashTest, BigReference) {
for ( const auto & expected_result : expected_results ) {
for ( const auto & expected_result : expected_results ) {
std : : string str ;
std : : string str ;
ASSERT_TRUE ( absl : : Base64Unescape ( expected_result . base64_data , & str ) ) ;
ASSERT_TRUE ( absl : : Base64Unescape ( expected_result . base64_data , & str ) ) ;
EXPECT_EQ ( absl : : hash_internal : : Wyh ash( str . data ( ) , str . size ( ) ,
EXPECT_EQ ( absl : : hash_internal : : LowLevelH ash( str . data ( ) , str . size ( ) ,
expected_result . seed , kSalt ) ,
expected_result . seed , kSalt ) ,
expected_result . hash ) ;
expected_result . hash ) ;
}
}
}
}