Skip to content

Commit 65c7e13

Browse files
committed
update tests to include the sum-to-infinity check
1 parent 549d70e commit 65c7e13

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

soroban-sdk/src/tests/crypto_bls12_381.rs

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@ use crate::{
77
#[test]
88
fn test_g1_negation() {
99
let env = Env::default();
10+
// Test case 1: infinity point
11+
let infinity = G1Affine::from_bytes(bytesn!(&env,
12+
0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
13+
));
14+
assert_eq!(-infinity.clone(), infinity);
15+
1016
// Test case 1: Generator point (G1)
1117
let g1_generator = G1Affine::from_bytes(bytesn!(&env,
1218
0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1
1319
));
1420
let neg_g1_generator = G1Affine::from_bytes(bytesn!(&env,
1521
0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb114d1d6855d545a8aa7d76c8cf2e21f267816aef1db507c96655b9d5caac42364e6f38ba0ecb751bad54dcd6b939c2ca
1622
));
17-
assert_eq!(-g1_generator, neg_g1_generator);
18-
19-
// Test case 2: Identity/infinity point
20-
let identity = G1Affine::from_bytes(bytesn!(&env,
21-
0x40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22-
));
23-
assert_eq!(-identity.clone(), identity);
23+
assert_eq!(-g1_generator.clone(), neg_g1_generator.clone());
24+
assert_eq!(infinity, g1_generator + neg_g1_generator);
2425

2526
// Test case 3: Random point
2627
let random_point = G1Affine::from_bytes(bytesn!(&env,
@@ -29,41 +30,39 @@ fn test_g1_negation() {
2930
let neg_random_point = G1Affine::from_bytes(bytesn!(&env,
3031
0x00b2ea3a6c75f43ff24d0a93f4302b4e2cf8f5eb2980eb7bb0f65af703c72c19e293cfe7cd98d3645a5d7c5f467d6292064970108f21dcd51c68d25d381037ebb04b5821d982e897296183d9c628f940a78645a1140bc07ac9148da5337a6f5d
3132
));
32-
assert_eq!(-random_point, neg_random_point);
33+
assert_eq!(-random_point.clone(), neg_random_point.clone());
34+
assert_eq!(infinity, random_point + neg_random_point);
3335
}
3436

3537
#[test]
3638
fn test_g2_negation() {
3739
let env = Env::default();
40+
// Test case 1: infinity point
41+
let infinity = G2Affine::from_bytes(bytesn!(&env,
42+
0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
43+
));
44+
let neg_infinity = -infinity.clone();
45+
assert_eq!(neg_infinity, infinity);
3846

39-
// Test case 1: Generator point (G2)
47+
// Test case 2: Generator point (G2)
4048
let g2_generator = G2Affine::from_bytes(bytesn!(&env,
4149
0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801
4250
));
43-
4451
let neg_g2_generator = G2Affine::from_bytes(bytesn!(&env,
4552
0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb813fa4d4a0ad8b1ce186ed5061789213d993923066dddaf1040bc3ff59f825c78df74f2d75467e25e0f55f8a00fa030ed0d1b3cc2c7027888be51d9ef691d77bcb679afda66c73f17f9ee3837a55024f78c71363275a75d75d86bab79f74782aa
4653
));
47-
48-
assert_eq!(-g2_generator, neg_g2_generator);
49-
50-
// Test case 2: Identity/infinity point
51-
let identity = G2Affine::from_bytes(bytesn!(&env,
52-
0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
53-
));
54-
55-
assert_eq!(-identity.clone(), identity);
54+
assert_eq!(-g2_generator.clone(), neg_g2_generator.clone());
55+
assert_eq!(infinity, g2_generator + neg_g2_generator);
5656

5757
// Test case 3: Random point
5858
let random_point = G2Affine::from_bytes(bytesn!(&env,
5959
0x04de7359c488ccf4753d08b99f3fb44de6c4c46b5872c45ddd90a37442dc679591a40ab8ee539b2aa30c333774c71ed01676197052a7a651e5618151d8374fdf4c25ce3f57c06f65b81dbaf0373b67d7be97e7f4f1f87cf71d761ecf04c05b150499bf4cf6242da563d185c2bce880ae59e5f3816b34f70d0a6f30e9ca3064ba179dd4ccda8dd025cb3a2c9628fe0c0b09defb3faaae69a59510cd90badf0b87a82e52a4876837e29466fced187483012c900b4d4a693b2347cab3f9cdd86035
6060
));
61-
6261
let neg_random_point = G2Affine::from_bytes(bytesn!(&env,
6362
0x04de7359c488ccf4753d08b99f3fb44de6c4c46b5872c45ddd90a37442dc679591a40ab8ee539b2aa30c333774c71ed01676197052a7a651e5618151d8374fdf4c25ce3f57c06f65b81dbaf0373b67d7be97e7f4f1f87cf71d761ecf04c05b151567529d435bb8f4e74a21f386632c290a91580388501bb25cc1a1b72c80916a070e2b31d6c62fd9eec4d369d7019ea0102216aa8ed17cf4b60ada25886ca14fbc48f8e06c1cdadcd2c9d5b3de3c7322f21bf4b166eac4dc72344c0632274a76
6463
));
65-
66-
assert_eq!(-random_point, neg_random_point);
64+
assert_eq!(-random_point.clone(), neg_random_point.clone());
65+
assert_eq!(infinity, random_point + neg_random_point);
6766
}
6867

6968
#[test]

0 commit comments

Comments
 (0)