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