extern crate wyhash;
use wyhash::wyhash;
#[test]
fn wyhash_test() {
let mut data = [0; 256];
for i in 0..data.len() {
data[i] = i as u8;
assert_eq!(ORIGINAL_HASHES[i], wyhash(&data[..i], i as u64));
}
}
#[cfg(feature = "std")]
#[test]
fn std_hasher() {
use std::hash::Hasher;
use wyhash::WyHash;
let mut data = [0; 256];
for i in 0..data.len() {
data[i] = i as u8;
let mut hasher = WyHash::with_seed(i as u64);
hasher.write(&data[..i]);
assert_eq!(ORIGINAL_HASHES[i], hasher.finish());
}
}
const ORIGINAL_HASHES: [u64; 256] = [
0,
0xcb4b8ebdf7240e2c,
0x785e1dd42caf9874,
0xff72c1dd91f7f9b7,
0x5f2dc7f85d79a31c,
0xf468ee6e6b5801ae,
0x41516a2f070d7a56,
0x7726512acd01026a,
0x60b3ea47c76b7320,
0x4ee2500d20313fb7,
0x13f164201759a747,
0xe94f80e3f96b4747,
0xcca974dd233825bc,
0x21453c75aef34b71,
0x60089922b4f27505,
0x80080ae6b6035b25,
0xd1ed89121617ff6c,
0x6172cf4b7db47100,
0xcfab82af90ec5f18,
0xc4445b15606656f8,
0x980e581a44a230ed,
0xf3e016b483b2178e,
0x3d6508ad2fbdbe34,
0xda1f67af5f10952e,
0x17157178e4df2788,
0xd178a62b795522f0,
0xb025fb5be602f44d,
0xcb8117838e932fd2,
0x923df1049ebdf913,
0xfd8e11b683cd35f2,
0xc1ae0a8a83acd75d,
0xb4b063437b5051eb,
0xde1f770d512142b0,
0x5587a2f4547c19b8,
0x22c6500c78dda0ff,
0x67ada50937e8b6de,
0xd3a31912120f0fd0,
0x213cb7b57fab3300,
0x1de18d0868eef1a,
0x6cda7d4b9b2ad5c8,
0x234c67db21ccc82e,
0x92e4a4beb9c479e5,
0xdbf401c1812e5e04,
0x2941337ab2412c65,
0x346ade10d7a3a1d8,
0xe03d1af404696fca,
0x3df02bc11a628253,
0x856d764c6f59b958,
0x1a2e03cc33ae2728,
0x1c841ea7ed6ca544,
0xa1ea6d0cfabedfb2,
0x212fa8fa05721ee7,
0xe15d35f12d2c72ab,
0x9a0476833e1cb3df,
0x5f646ddb8f46922a,
0xa6d67a01656e5390,
0xc1dc88623278d1b6,
0x1a041f58e2cac11c,
0x307d32465e51671,
0x428eb0f56766aed3,
0x3fc37706c8eed57c,
0xba508442e6b4d621,
0x70f55bea48266c19,
0x214c35fe05b689dd,
0x26f99acbfa408bf4,
0xd01d1a6977b6b0b9,
0x71e0cb79a51ad0c4,
0x275d844e7169b2fe,
0xd9c9da972e6ec58b,
0xd5531555b542f8d5,
0x1d9b88550b2ec9a2,
0xdaa187115e8ad3e6,
0xacdeced7678c0af6,
0x676b942e199eb4a5,
0x977faaabd1cd8152,
0x5191ac7538530082,
0x1d356024f456b560,
0x3e0aa9e2960b19d6,
0x5dd4d503b22cf321,
0x3adb8e534acad984,
0x1ebe63e07206603b,
0x14efc335aff8e404,
0xdbba658e3bcd9ae5,
0x904a01bbdd063c7d,
0x23ac71d5667a4035,
0x93bc78c214adf6a2,
0xf700ad1fe1b3da8c,
0x8b790fe3c83259c,
0xad1324516fd0c9f8,
0xf48d2211a0a3eaa2,
0xac3f3b727ca6536f,
0xd3d8e781f86beb9c,
0x5b6bb8f2b2eea9ef,
0x4777d40ddbe207ee,
0x70561ea0f1a2b5cf,
0xbfa0d4e995334a96,
0x4baa53ded7638483,
0x456922c973a2d35,
0x646385175db4d1cd,
0x8477140691cf29ab,
0xbcf1f67bf5339436,
0x945695899b467314,
0xa6a7af5557f06991,
0xdef1fbe667438c50,
0x6006fc98c059c61c,
0x5c474e1e243c64c3,
0x16bd651356d9676b,
0xa0781f61d8e1a66c,
0x4d7cee9d1d25b2fc,
0x90ffb72803a5c72e,
0xe447155b1630043,
0xc46e4dfabe4f33b1,
0xd0d6acc9006a2e6,
0x3fb0d7cba626ace1,
0xa4e370467d956fb8,
0x59869967d62a16ee,
0xf98529ed1e726652,
0xde68ef7ae7223fef,
0x61ad2bac9f82d845,
0xc4d677c2dc4636b8,
0xc9f1283c65fe1695,
0x654f225bda07de96,
0x380f9fc56958a9fe,
0x350fc9761ff927b5,
0x7dbeb1e1165409f8,
0x58fbd13ebc0de5f0,
0x98bd2aa8b15c8a7b,
0x399f66be8b7008de,
0xfa6bb4bd62b29da0,
0x8b8fd768ad2e1de5,
0xf6f9a6f6fd6bba7a,
0x348c7699d121e793,
0x97982b99f1cd4e1f,
0xb3552b3f3335411e,
0x7a66d2e293199023,
0x1f8ba7b8c433e1dc,
0xf7bbe084b07621aa,
0x94f7c3459a18b23b,
0xe22759bb4e4b111d,
0xfff37b23a1ffec7c,
0xebab2e7a707ed573,
0x8261cce5ac86ac62,
0xf19c1d2448756729,
0xd2bef204a63d314d,
0x94950ea020b809,
0x60f401efbab043a6,
0xa254b6bc2d323387,
0xd67ec15a76ed35b1,
0x7b3fb390ba31549f,
0xa00b427b5e37393c,
0xbb1f45c2974c2aa1,
0xcf698267588bfb7,
0xb406ed4ba29de7e6,
0x18ff60aea29b43d3,
0xb0afb28fda21cfb6,
0xe9220368cc59b70,
0xd6e3389c392e0bd6,
0xb8eada20957c7a67,
0x4bb9726f7ffcdf24,
0xe80ecca5284a954e,
0x755fc6fb23ea8cf7,
0xfa4400eed2e68376,
0xe3b8915b9ebc81e1,
0xfb6dd8e3649a6ebc,
0xae623ce843993a6e,
0x555e2753c60b1611,
0x94ba0c67034a68fe,
0x7971ad48eb5a37f7,
0x5c34186a6f650605,
0x43301d897ae522ac,
0x5d8272cc02412562,
0x5577da5f312856c4,
0xfd0440074fed8666,
0xa1fbb3aacb616f0e,
0x83cc8dddef0d6b6d,
0x6f1f55a89d263def,
0x873eb148fee9e92d,
0x84bf75db8c5e2575,
0xa9eb218f99c5ad33,
0xaa308ae57dd81b59,
0xb91320ed4e34a0bf,
0x9e54fc1b3e3d1a45,
0x5cd47cf0ad90625a,
0x21c10b783395a3f6,
0x330cfe629aa084f4,
0x4b80ef2bab38e210,
0x56a02414116dfc7,
0x3f0cd4171a1a9a1c,
0x19bf4147d9d56348,
0x53ad93fe67e4ec6e,
0x29f0178a5a46223e,
0x751264da9719755f,
0xe80ef5e6f433eb6e,
0xadf7592bcbfa7ade,
0x650d10b50f47cac9,
0x1bfd6f4e7a6a73ca,
0x2f7019dd776d4393,
0xc3be2d09bb8fff33,
0xbd7dadef8d33710b,
0xe5cc6033a441b73c,
0x66773f25ed20c1aa,
0x110cc2d744e1d8e1,
0x5cab7b28bf56b384,
0x17f8762f0ab61dfb,
0xbfa3c6f68121f41,
0x6b55c3899f03665a,
0x6b0adcefd570653c,
0xd9e993a7c5da9d7e,
0xe33099d6be5dd894,
0x811215ce6ecab618,
0x67c731fd2e3b499c,
0xa2825ebb808d9afe,
0xc315c417a648863f,
0xf3475d4e9efbfb1e,
0xf1d67001a28a2718,
0xe3978f468157b3b2,
0x9aeb617913c87c6a,
0xd1900d1675a617ff,
0xc6e7d4e1f0f1d62d,
0xc1a6fc9e2d531e27,
0xb1a52dd4648ee03b,
0x13008a5127d48def,
0xb06e6bf24fed86e1,
0x54ceb7932cd2791a,
0x9a0ed68fe49cc927,
0x45816f4370c3cf33,
0xbf2c36d2e737871c,
0xf6ba5153876e7642,
0x9ad1c8ddaaa9440d,
0xeecb3c5ac8aa6e04,
0x84ea8f5331fd96ea,
0x1d4d1a27066e930,
0x40c3ed8b9373cbbf,
0xa6a59121ddaaf312,
0x954a35aa0d3df292,
0x86030cf13121f7c1,
0xda91f00260c600b,
0x2eed8a83f745d352,
0xc339c491711b4021,
0x7f786992fdb30a95,
0xc7836f1ff5c11db2,
0x28a74e43f5a88d8d,
0x92867fe48225d55e,
0x639e3e9d23d5dd39,
0x44227508ec59ec5c,
0x4110ce594336f748,
0xca22b20318ed7c7,
0xad53c230a8e7780f,
0x5e08d9123c0f9dc,
0xf402b52b7bfe440f,
0xe3514f4edef6437a,
0x26cadf1fc5c7656f,
0xb1c05910bf9d0bdd,
0xcb7c5c37db10491a,
0x303fe9d12cbdebff,
0x9fca2c0672992ea6,
];