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