use dusk_plonk::prelude::*;
#[derive(Debug, Default)]
pub struct TestCircuit1 {}
#[code_hasher::hash(CIRCUIT_ID, version = "0.1.0")]
impl Circuit for TestCircuit1 {
fn gadget(&mut self, composer: &mut StandardComposer) -> Result<(), Error> {
unimplemented!()
}
fn padded_circuit_size(&self) -> usize {
1 << 11
}
}
#[derive(Debug, Default)]
pub struct TestCircuit2 {}
#[code_hasher::hash(CIRCUIT_ID, version = "0.1.0")]
impl Circuit for TestCircuit2 {
fn gadget(&mut self, composer: &mut StandardComposer) -> Result<(), Error> {
unimplemented!()
}
fn padded_circuit_size(&self) -> usize {
1 << 11
}
}
#[code_hasher::hash(SOME_CONST_NAME, version = "0.1.0")]
pub mod testing_module {
pub fn this_does_something() -> [u8; 32] {
SOME_CONST_NAME
}
}
#[code_hasher::hash(SOME_CONST_NAME)]
pub mod testing_module_without_version {
pub fn this_does_something() -> [u8; 32] {
SOME_CONST_NAME
}
}
mod tests {
use super::*;
#[test]
fn plonk_testcase_works() {
assert_eq!(
&TestCircuit1::CIRCUIT_ID,
&[
240, 204, 97, 117, 239, 219, 8, 79, 239, 104, 22, 18, 189, 106,
47, 250, 179, 145, 190, 100, 207, 203, 9, 22, 32, 36, 209, 110,
221, 92, 219, 150
]
);
}
#[test]
fn diff_version_is_diff_hash() {
assert_ne!(&TestCircuit1::CIRCUIT_ID, &TestCircuit2::CIRCUIT_ID,);
}
#[test]
fn custom_mods_and_names_work() {
assert_ne!(testing_module::this_does_something(), [0u8; 32]);
assert_ne!(
testing_module::this_does_something(),
testing_module_without_version::this_does_something()
);
}
}