Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add tests for poseidon #2394

Merged
merged 1 commit into from Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
249 changes: 249 additions & 0 deletions console/algorithms/src/poseidon/mod.rs
Expand Up @@ -170,4 +170,253 @@ mod tests {
single_rate_test::<7>();
single_rate_test::<8>();
}

#[test]
fn test_suite_hash2() {
fn test_case_hash2(index: u8, input: Vec<Field<CurrentEnvironment>>) {
let poseidon2 = Poseidon2::<Console>::setup("Poseidon2").unwrap();
assert_snapshot("test_hash", format!("rate_2_test_{index}"), poseidon2.hash(&input).unwrap());
}
test_case_hash2(0, vec![]);
test_case_hash2(1, vec![Field::<Console>::from_u8(0)]);
test_case_hash2(2, vec![Field::<Console>::from_u8(1)]);
test_case_hash2(3, vec![Field::<Console>::from_u8(0), Field::<Console>::from_u8(1)]);
test_case_hash2(4, vec![Field::<Console>::from_u8(7), Field::<Console>::from_u8(6)]);
}

#[test]
fn test_suite_hash4() {
fn test_case_hash4(index: u8, input: Vec<Field<CurrentEnvironment>>) {
let poseidon4 = Poseidon4::<Console>::setup("Poseidon4").unwrap();
assert_snapshot("test_hash", format!("rate_4_test_{index}"), poseidon4.hash(&input).unwrap());
}
test_case_hash4(0, vec![]);
test_case_hash4(1, vec![Field::<Console>::from_u8(0)]);
test_case_hash4(2, vec![Field::<Console>::from_u8(1)]);
test_case_hash4(3, vec![Field::<Console>::from_u8(0), Field::<Console>::from_u8(1)]);
test_case_hash4(4, vec![Field::<Console>::from_u8(7), Field::<Console>::from_u8(6)]);
test_case_hash4(5, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
]);
test_case_hash4(6, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
Field::<Console>::from_str(
"1806278863067630397941269234951941896370617486625414347832536440203404317871field",
)
.unwrap(),
]);
test_case_hash4(7, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
Field::<Console>::from_str(
"1806278863067630397941269234951941896370617486625414347832536440203404317871field",
)
.unwrap(),
Field::<Console>::from_str(
"4017177598231920767921734423139954103557056461408532722673217828464276314809field",
)
.unwrap(),
]);
}

#[test]
fn test_suite_hash8() {
fn test_case_hash8(index: u16, input: Vec<Field<CurrentEnvironment>>) {
let poseidon8 = Poseidon8::<Console>::setup("Poseidon8").unwrap();
assert_snapshot("test_hash", format!("rate_8_test_{index}"), poseidon8.hash(&input).unwrap());
}
test_case_hash8(0, vec![]);
test_case_hash8(1, vec![Field::<Console>::from_u8(0)]);
test_case_hash8(2, vec![Field::<Console>::from_u8(1)]);
test_case_hash8(3, vec![Field::<Console>::from_u8(0), Field::<Console>::from_u8(1)]);
test_case_hash8(4, vec![Field::<Console>::from_u8(7), Field::<Console>::from_u8(6)]);
test_case_hash8(5, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
]);
test_case_hash8(6, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
Field::<Console>::from_str(
"1806278863067630397941269234951941896370617486625414347832536440203404317871field",
)
.unwrap(),
]);
test_case_hash8(7, vec![
Field::<Console>::from_str(
"3801852864665033841774715284518384682376829752661853198612247855579120198106field",
)
.unwrap(),
Field::<Console>::from_str(
"8354898322875240371401674517397790035008442020361740574117886421279083828480field",
)
.unwrap(),
Field::<Console>::from_str(
"4810388512520169167962815122521832339992376865086300759308552937986944510606field",
)
.unwrap(),
Field::<Console>::from_str(
"1806278863067630397941269234951941896370617486625414347832536440203404317871field",
)
.unwrap(),
Field::<Console>::from_str(
"4017177598231920767921734423139954103557056461408532722673217828464276314809field",
)
.unwrap(),
]);
test_case_hash8(8, vec![
Field::<Console>::from_str(
"2241061724039470158487229089505123379386376040366677537043719491567584322339field",
)
.unwrap(),
Field::<Console>::from_str(
"4450395467941419565906844040025562669400620759737863109185235386261110553073field",
)
.unwrap(),
Field::<Console>::from_str(
"3763549180544198711495347718218896634621699987767108409942867882747700142403field",
)
.unwrap(),
Field::<Console>::from_str(
"1834649076610684411560795826346579299134200286711220272747136514724202486145field",
)
.unwrap(),
Field::<Console>::from_str(
"3330794675297759513930533281299019673013197332462213086257974185952740704073field",
)
.unwrap(),
Field::<Console>::from_str(
"5929621997900969559642343088519370677943323262633114245367700983937202243619field",
)
.unwrap(),
Field::<Console>::from_str(
"8211311402459203356251863974142333868284569297703150729090604853345946857386field",
)
.unwrap(),
]);
test_case_hash8(9, vec![
Field::<Console>::from_str(
"160895951580389706659907027483151875213333010019551276998320919296228647317field",
)
.unwrap(),
Field::<Console>::from_str(
"8334099740396373026754940038411748941117628023990297711605274995172393663866field",
)
.unwrap(),
Field::<Console>::from_str(
"6508516067551208838086421306235504440162527555399726948591414865066786644888field",
)
.unwrap(),
Field::<Console>::from_str(
"5260580011132523115913756761919139190330166964648541423363604516046903841683field",
)
.unwrap(),
Field::<Console>::from_str(
"1066299182733912299977577599302716102002738653010828827086884529157392046228field",
)
.unwrap(),
Field::<Console>::from_str(
"1977519953625589014039847898215240724041194773120013187722954068145627219929field",
)
.unwrap(),
Field::<Console>::from_str(
"1618348632868002512910764605250139381231860094469042556990470848701700964713field",
)
.unwrap(),
Field::<Console>::from_str(
"1157459381876765943377450451674060447297483544491073402235960067133285590974field",
)
.unwrap(),
]);
test_case_hash8(10, vec![
Field::<Console>::from_str(
"3912308888616251672812272013988802988420414245857866136212784631403027079860field",
)
.unwrap(),
Field::<Console>::from_str(
"4100923705771018951561873336835055979905965765839649442185404560120892958216field",
)
.unwrap(),
Field::<Console>::from_str(
"5701101373789959818781445339314572139971317958997296225671698446757742149719field",
)
.unwrap(),
Field::<Console>::from_str(
"5785597627944719799683455467917641287692417422465938462034769734951914291948field",
)
.unwrap(),
Field::<Console>::from_str(
"214818498460401597228033958287537426429167258531438668351703993840760770582field",
)
.unwrap(),
Field::<Console>::from_str(
"4497884203527978976088488455523871581608892729212445595385399904032800522087field",
)
.unwrap(),
Field::<Console>::from_str(
"4010331535874074900042223641934450423780782982190514529696596753456937384201field",
)
.unwrap(),
Field::<Console>::from_str(
"6067637133445382691713836557146174628934072680692724940823629181144890569742field",
)
.unwrap(),
Field::<Console>::from_str(
"5966421531117752671625849775894572561179958822813329961720805067254995723444field",
)
.unwrap(),
]);
}
}
@@ -0,0 +1 @@
890528275010128413086262374581080260861073041656622537351850370623612770892field
@@ -0,0 +1 @@
5628341397010129094749668483581880102727432924493934736184943293239516955115field
@@ -0,0 +1 @@
8157139884333238590486942177518291201805404831318752263970723012511043776504field
@@ -0,0 +1 @@
1264503312579512465189393860390753485466098990459556420139454725533509612591field
@@ -0,0 +1 @@
610307558855046745962283397484544098131504333994299967172265018394298942553field
@@ -0,0 +1 @@
1044346838034619416100171813313106342224256770546574686139345274096660160611field
@@ -0,0 +1 @@
6531918078649604677267704629524208386557917803204512136246020129886969612813field
@@ -0,0 +1 @@
4426996492654533614386079842002262353437097961897230015892590642692830916891field
@@ -0,0 +1 @@
3515567246660071748861271187713830429704652891229797018766869690557265012151field
@@ -0,0 +1 @@
6569866994757293255004300918458370975674559167201047636575858551784982288595field
@@ -0,0 +1 @@
87141345289194987249335251035288105774877062220257664575645549134632926482field
@@ -0,0 +1 @@
7213538381157479600695819072074313481664544179359574938537072092346114865618field
@@ -0,0 +1 @@
5481099192588700791287898101517060190977970633110857260811993991553610949275field
@@ -0,0 +1 @@
1567761742253784763517697634212670888744157690807242184088612393580063919530field
@@ -0,0 +1 @@
4116380618505203139735709763188062899546807129226239980574382125889245087784field
@@ -0,0 +1 @@
305373231140119141495771730195166660114047796312466197355241017473154264594field
@@ -0,0 +1 @@
1602821949296022806146270121391383580291702991974340780933114647223620852779field
@@ -0,0 +1 @@
4504853075224575973859580682353724684440391731949662062689299393698522574250field
@@ -0,0 +1 @@
2011084681212961452311333305005509211229919616031257660941313625311987279984field
@@ -0,0 +1 @@
2441207636122714306371856624370101512638654024941597476504350040586876819967field
@@ -0,0 +1 @@
6088573564989104999418724140351215790250870264476768543870720179680005600079field
@@ -0,0 +1 @@
5831342285401093988805641165492026817697793896414496472388751494052459296879field
@@ -0,0 +1 @@
1444892038274156943837009734886522214149622494611671083296024163883829362979field
@@ -0,0 +1 @@
1194605944695343789228228597749032243744971209446840517486291637780197055440field