@pytest.mark.parametrize(
"expected_output",
[pytest.param(Spec.PAIRING_FALSE, id=pytest.HIDDEN_PARAM)],
)
@pytest.mark.parametrize(
"input_data",
[
pytest.param(
Spec.INF_G1
+ PointG2(
(
0x092A62B029973FCD9EC18DB33EB4C7B6B649A2E6196561761789E39BC84F11AC,
0x0A59F2672462BE814A277F495D53244691C40DA85D39B210ED3E099B397A4CF9,
),
(
0x2AD603022931E8C20C927FA114866CA26B305156336511A9224D6BD88E5BA7FB,
0x2B44DD02DF7F7A846F546C77F3330CC171ABEEA7747EC03607C4B754A0710142,
),
)
+ PointG1(
0x1F4B96B82BD3631447045F1BB66198FA6A904E48092750762EFD419FB5FF52B5,
0x1FAC61C1A7265D0E1A6433E9767CB51C71E9AC5A119BE9894F509BF92B0FB1B4,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
),
),
pytest.param(
PointG1(
0x0624D2C76767981FADC8F74F29C034F7AE0522585E1E0201308109C40D1D5420,
0x251BA3C545339BBE22DA0FE90692A099384C435EC0902C99BE7E7A84D62BB49C,
)
+ PointG2(
(
0x0C0B524584214B17414A25236E4E2B6F4BF398EC62E9ABEB7EA1F158D89DF05B,
0x0E05F600BF1408AB25C0F3DBB98FF26C4D85A6CE6A63BEBC3B2E360DE77CF606,
),
(
0x2488EB90497D64621124420825ABD353268FE00BD90726991D0CE623E59DA9C6,
0x2340B1FB006017382CB76606A873F48DE8F31434CC243C8F465CB908D8CC7346,
),
)
+ PointG1(
0x18CDE0D7BDE7E1DA88FB8192CE94BEA754F24A53F1F000F15B4C5C151C12DF4F,
0x0066B16BF4229EDF5375B78A5C7469DDF68F7D5C7577642ED2C90D5D42C231ED,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
)
+ PointG1(
0x2948734DB775BB41A29257214B19A6356E6640894C2A48F201ADDCE62DE7B41E,
0x1BB87BDDBE46D75809751232405928C3314934082052131A64574FF5A59C7DB7,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
)
+ PointG1(
0x09C91A687E6C44F2917682DC5D0A34BE7C77FFF361AA36610EFFAB6F6D2D87AC,
0x13849277ED76B58020AB993F1847EBCC0F1BCF711FBA15F4A7A80AB72B4FE964,
)
+ PointG2(
(
0x2F0C63D0C53B3DFBCA27B6B43AE7FBF55A38D78A21470996485B03128ACCC208,
0x00556502356E37ED150DB2E36531B0F275FD6835C0FC1945922E270B48C48A86,
),
(
0x02644C27B5DBD793592A70B735E22C798A5E309FA17A992A7DC2A050E01B298F,
0x194776B6A53439D7336F389D2A8F6651E40885F5CA2538B0DC9CB534FB23F7FA,
),
)
+ PointG1(
0x1E379E19DBFFBA1EDF0A04505F67229E707A4B82F19285D3C186964E83E15536,
0x08EE58BAA16641B1513F007DA7D3CF58B503B80F73C7D8E792DB63DEF167E0D8,
)
+ PointG2(
(
0x2B1F95D6AA6FD6F5E6978D0135C206079770D5C3BA001967C5D94C5902F95FE9,
0x264AD64952CB1D30A7230BCA35B3907B2457ABDCD6052E14E2A132D768222225,
),
(
0x14F79CE35164ACFDB802551E02A9AEBDB20BF4248C0CCF5C6CF5E57690877841,
0x0F8DFB99AAA272BBAA49012DA81DFAFA1A3C07EBA89355602143C58F63DF2939,
),
)
+ PointG1(
0x117A8203A67AB052AF18032434B61FE6B33E0A6AD5AB70D57AEF4444478B42BA,
0x123A80E91F77C135F657E2DBF5AF0D07E9A4FB63585B88E5439DDAB7741C0961,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
),
),
pytest.param(
PointG1(
0x104F6D8507D6A112E8FD516D70BFE3D2474539948276D36EEE987BE127A9E3AB,
0x199EEF24146007E80386F391EDC886F5DDBA22B5CF131EFA3B6AE71A673FC88E,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
)
+ PointG1(
0x2642F046AD222F094C9282816131317B8D52FC0FEE64F26898232432D34FDAE6,
0x05A5F2A2E8F15BA27E90F54FAFF78391B307B402A0AE995D1C12F92C0B574593,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
),
),
),
pytest.param(
PointG1(
0x142C9123C08A0D7F66D95F3AD637A06B95700BC525073B75610884EF45416E16,
0x10104C796F40BFEEF3588E996C040D2A88C0B4B85AFD2578327B99413C6FE820,
)
+ PointG2(
(
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
),
(
0x275DC4A288D1AFB3CBB1AC09187524C7DB36395DF7BE3B99E673B13A075A65EC,
0x1D9BEFCD05A5323E6DA4D435F3B617CDB3AF83285C2DF711EF39C01571827F9D,
),
),
),
pytest.param(
PointG1(
0x1F0AB114F50077D71A195869DD8C07E2A031A55A8DAC07C522EE7AC74136C50C,
0x229C9D498F5CA70A27612A244743773FE22668370A91410B645FE22F2E6EB78C,
)
+ Spec.INF_G2
+ PointG1(
0x284869D750E478E4B09637F7AE55BCCE23BD622F04E986E1CBA0F64B59B02320,
0x0A88BC2898A2930AEE2B92055CA2F97360A79C598F5E8998FED7ADD43A692D10,
)
+ PointG2(
(
0x21F4F3DDD5250962BAAEFC6EF587F464C8FDAD1BB7812B292DCE48D5462039DF,
0x14044CA96015F3C6666F98D756FBF7BD0E12C3E884DB4100391DA8A47DEFF16E,
),
(
0x00B30C250F71DB58EB20E14D67CD98EBB47790A7E7D45D30A90CE707175F295B,
0x1E45ECA08667A7CFE06158FAE4A38CAC01A37853E730EAA28B2F7167FD74C22D,
),
),
),
],
ids=lambda _: "negative_",
)
def test_negative(
state_test: StateTestFiller,
pre: Alloc,
post: dict,
tx: Transaction,
) -> None:
"""Test valid inputs where the pairing check fails."""
state_test(
env=Environment(),
pre=pre,
tx=tx,
post=post,
)