import hash.fnv1a struct MyStruct { mut: x int y int z int } struct Abc { mut: a [5]u64 } fn test_fnv1a_sum32() { $if windows { return } ahash := '10bc2abf' a := 'apple' b := fnv1a.sum32_string(a) c := fnv1a.sum32(a.bytes()) d := unsafe { fnv1a.sum32_bytes(a.str, a.len) } assert b.hex() == ahash assert c.hex() == ahash assert d.hex() == ahash // mut aa := Abc{} x := fnv1a.sum32_struct(aa) aa.a[3] = 5 y := fnv1a.sum32_struct(aa) assert x != y mut ms := MyStruct{} xx := fnv1a.sum32_struct(ms) ms.x = 77 yy := fnv1a.sum32_struct(ms) assert xx != yy assert x != xx assert y != yy } fn test_fnv1a_sum64() { $if windows { return } a := 'apple' ahash := 'f74a62a458befdbf' b := fnv1a.sum64_string(a) c := fnv1a.sum64(a.bytes()) d := unsafe { fnv1a.sum64_bytes(a.str, a.len) } assert b.hex() == ahash assert c.hex() == ahash assert d.hex() == ahash // mut aa := Abc{} x := fnv1a.sum64_struct(aa) aa.a[3] = 5 y := fnv1a.sum64_struct(aa) assert x != y mut ms := MyStruct{} xx := fnv1a.sum64_struct(ms) ms.x = 77 yy := fnv1a.sum64_struct(ms) assert xx != yy assert x != xx assert y != yy }