ark-curves-cherry-picked/ed_on_bls12_377/src/curves/tests.rs
ed_on_bls12_377/src/curves/tests.rsRaw
1use ark_ec::{AffineCurve, ProjectiveCurve};
2use ark_std::test_rng;
3use rand::Rng;
4
5use crate::*;
6
7use ark_curve_tests::{curves::*, groups::*};
8
9#[test]
10fn test_projective_curve() {
11 curve_tests::<EdwardsProjective>();
12
13 edwards_tests::<EdwardsParameters>();
14}
15
16#[test]
17fn test_projective_group() {
18 let mut rng = test_rng();
19 let a = rng.gen();
20 let b = rng.gen();
21 for _i in 0..100 {
22 group_test::<EdwardsProjective>(a, b);
23 }
24}
25
26#[test]
27fn test_affine_group() {
28 let mut rng = test_rng();
29 let a: EdwardsAffine = rng.gen();
30 let b: EdwardsAffine = rng.gen();
31 for _i in 0..100 {
32 group_test::<EdwardsAffine>(a, b);
33 }
34}
35
36#[test]
37fn test_generator() {
38 let generator = EdwardsAffine::prime_subgroup_generator();
39 assert!(generator.is_on_curve());
40 assert!(generator.is_in_correct_subgroup_assuming_on_curve());
41}
42
43#[test]
44fn test_conversion() {
45 let mut rng = test_rng();
46 let a: EdwardsAffine = rng.gen();
47 let b: EdwardsAffine = rng.gen();
48 let a_b = {
49 use ark_ec::group::Group;
50 (a + &b).double().double()
51 };
52 let a_b2 = (a.into_projective() + &b.into_projective())
53 .double()
54 .double();
55 assert_eq!(a_b, a_b2.into_affine());
56 assert_eq!(a_b.into_projective(), a_b2);
57}
58
59#[test]
60fn test_montgomery_conversion() {
61 montgomery_conversion_test::<EdwardsParameters>();
62}