use crate::{
crh::{PedersenCRH, PedersenCompressedCRH, BHPCRH},
traits::CRH,
};
use snarkvm_curves::edwards_bls12::EdwardsProjective;
use snarkvm_utilities::FromBytes;
const PEDERSEN_NUM_WINDOWS: usize = 8;
const PEDERSEN_WINDOW_SIZE: usize = 128;
const BHP_NUM_WINDOWS: usize = 8;
const BHP_WINDOW_SIZE: usize = 63;
fn crh_serialization<C: CRH>() {
let crh = C::setup("crh_serialization").to_bytes_le().unwrap();
let recovered_crh: C = FromBytes::read_le(&crh[..]).unwrap();
assert_eq!(crh, recovered_crh.to_bytes_le().unwrap());
}
#[test]
fn pedersen_crh_serialization() {
crh_serialization::<PedersenCRH<EdwardsProjective, PEDERSEN_NUM_WINDOWS, PEDERSEN_WINDOW_SIZE>>();
}
#[test]
fn pedersen_compressed_crh_serialization() {
crh_serialization::<PedersenCompressedCRH<EdwardsProjective, PEDERSEN_NUM_WINDOWS, PEDERSEN_WINDOW_SIZE>>();
}
#[test]
fn bowe_hopwood_crh_serialization() {
crh_serialization::<BHPCRH<EdwardsProjective, BHP_NUM_WINDOWS, BHP_WINDOW_SIZE>>();
}
#[test]
fn simple_bowe_hopwood_crh() {
let crh = BHPCRH::<EdwardsProjective, BHP_NUM_WINDOWS, BHP_WINDOW_SIZE>::setup("simple_bowe_hopwood_crh");
crh.hash(&[1, 2, 3]).unwrap();
}