fnv0 1.1.0

FNV0/1/1a 32/64/128-bit hash functions
Documentation
// FNV hash for Rust
//
// Written by Radim Kolar <hsn@sendmail.cz> 2024
//
// SPDX-License-Identifier: CC0-1.0

use super::FNV_BASIS;

// checks if initial values for FNV hash are set correctly
// They are fnv0 hashes of known string


//    32-bit


use super::{fnv_32, FNV1_32_INIT, FNV1A_32_INIT, FNV0_32_INIT};

#[test]
fn ofs1_32() {
   let h = fnv_32(&FNV_BASIS, 0);
   assert_eq!( FNV1_32_INIT, h);
   assert_eq!( FNV1A_32_INIT, h);
}

#[test]
fn ofs0_32() {
   assert_eq!( FNV0_32_INIT, 0);
}


//   64-bit


use super::{fnv_64, FNV1_64_INIT, FNV1A_64_INIT, FNV0_64_INIT};

#[test]
fn ofs1_64() {
   let h = fnv_64(&FNV_BASIS, 0);
   assert_eq!( FNV1_64_INIT, h);
   assert_eq!( FNV1A_64_INIT, h);
}

#[test]
fn ofs0_64() {
   assert_eq! ( FNV0_64_INIT, 0 );
}


//   128-bit


use super::{fnv_128, FNV1_128_INIT, FNV1A_128_INIT, FNV0_128_INIT};

#[test]
fn ofs1_128() {
   let h = fnv_128(&FNV_BASIS, 0);
   assert_eq!( FNV1_128_INIT, h);
   assert_eq!( FNV1A_128_INIT, h);
}

#[test]
fn ofs0_128() {
   assert_eq! ( FNV0_128_INIT, 0 );
}