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