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
Original file line number Diff line number Diff line change
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(),
]);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
890528275010128413086262374581080260861073041656622537351850370623612770892field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5628341397010129094749668483581880102727432924493934736184943293239516955115field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8157139884333238590486942177518291201805404831318752263970723012511043776504field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1264503312579512465189393860390753485466098990459556420139454725533509612591field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
610307558855046745962283397484544098131504333994299967172265018394298942553field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1044346838034619416100171813313106342224256770546574686139345274096660160611field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6531918078649604677267704629524208386557917803204512136246020129886969612813field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4426996492654533614386079842002262353437097961897230015892590642692830916891field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3515567246660071748861271187713830429704652891229797018766869690557265012151field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6569866994757293255004300918458370975674559167201047636575858551784982288595field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
87141345289194987249335251035288105774877062220257664575645549134632926482field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7213538381157479600695819072074313481664544179359574938537072092346114865618field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5481099192588700791287898101517060190977970633110857260811993991553610949275field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1567761742253784763517697634212670888744157690807242184088612393580063919530field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4116380618505203139735709763188062899546807129226239980574382125889245087784field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
305373231140119141495771730195166660114047796312466197355241017473154264594field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1602821949296022806146270121391383580291702991974340780933114647223620852779field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4504853075224575973859580682353724684440391731949662062689299393698522574250field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2011084681212961452311333305005509211229919616031257660941313625311987279984field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2441207636122714306371856624370101512638654024941597476504350040586876819967field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6088573564989104999418724140351215790250870264476768543870720179680005600079field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5831342285401093988805641165492026817697793896414496472388751494052459296879field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1444892038274156943837009734886522214149622494611671083296024163883829362979field
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1194605944695343789228228597749032243744971209446840517486291637780197055440field