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_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    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}