hash_raw_bhp.adl
1 /* 2 namespace: Compile 3 expectation: Pass 4 */ 5 6 program test.alpha { 7 struct Data { 8 x: u32, 9 y: u32, 10 } 11 12 // Test all BHP raw hash variants 13 transition main(input: u64) -> ( 14 address, field, group, i8, u32, scalar, // BHP256 raw 15 field, group, scalar, // BHP512 raw 16 field, u64, // BHP768 raw 17 field, i128, // BHP1024 raw 18 bool, bool, bool // Comparison flags 19 ) { 20 let data: Data = Data { x: 10u32, y: 20u32 }; 21 22 // BHP256 raw hashes - test all output types 23 let bhp256_addr_raw: address = BHP256::hash_to_address_raw(input); 24 let bhp256_field_raw: field = BHP256::hash_to_field_raw(input); 25 let bhp256_group_raw: group = BHP256::hash_to_group_raw(input); 26 let bhp256_i8_raw: i8 = BHP256::hash_to_i8_raw(input); 27 let bhp256_u32_raw: u32 = BHP256::hash_to_u32_raw(input); 28 let bhp256_scalar_raw: scalar = BHP256::hash_to_scalar_raw(input); 29 30 // BHP512 raw hashes 31 let bhp512_field_raw: field = BHP512::hash_to_field_raw(input); 32 let bhp512_group_raw: group = BHP512::hash_to_group_raw(input); 33 let bhp512_scalar_raw: scalar = BHP512::hash_to_scalar_raw(input); 34 35 // BHP768 raw hashes with struct 36 let bhp768_field_raw: field = BHP768::hash_to_field_raw(data); 37 let bhp768_u64_raw: u64 = BHP768::hash_to_u64_raw(data); 38 39 // BHP1024 raw hashes with struct 40 let bhp1024_field_raw: field = BHP1024::hash_to_field_raw(data); 41 let bhp1024_i128_raw: i128 = BHP1024::hash_to_i128_raw(data); 42 43 // Test that raw variants produce different results than non-raw 44 let bhp256_field_normal: field = BHP256::hash_to_field(input); 45 let bhp512_field_normal: field = BHP512::hash_to_field(input); 46 let bhp768_field_normal: field = BHP768::hash_to_field(data); 47 48 return ( 49 bhp256_addr_raw, bhp256_field_raw, bhp256_group_raw, bhp256_i8_raw, bhp256_u32_raw, bhp256_scalar_raw, 50 bhp512_field_raw, bhp512_group_raw, bhp512_scalar_raw, 51 bhp768_field_raw, bhp768_u64_raw, 52 bhp1024_field_raw, bhp1024_i128_raw, 53 bhp256_field_raw != bhp256_field_normal, 54 bhp512_field_raw != bhp512_field_normal, 55 bhp768_field_raw != bhp768_field_normal 56 ); 57 } 58 }