arnaucube
arnaucube/ark-curves-cherry-pickedPublic Self-hosted repository
ark-curves-cherry-picked/ed_on_bn254/src/curves/tests.rs
ed_on_bn254/src/curves/tests.rsRaw
 1use ark_algebra_test_templates::curves::*;
 2use ark_ec::{AffineRepr, ProjectiveCurve};
 3use ark_ff::Zero;
 4use ark_std::{ops::Mul, str::FromStr};
 5
 6use crate::*;
 7
 8#[test]
 9fn test_projective_curve() {
10    curve_tests::<EdwardsProjective>();
11
12    edwards_tests::<EdwardsParameters>();
13}
14
15#[test]
16fn test_generator() {
17    let generator = EdwardsAffine::prime_subgroup_generator();
18    assert!(generator.is_on_curve());
19    assert!(generator.is_in_correct_subgroup_assuming_on_curve());
20}
21
22#[test]
23fn test_scalar_multiplication() {
24    let f1 = Fr::from_str(
25        "4691331900926794624732159288782398864809513177368446695323460897088210774597",
26    )
27    .unwrap();
28    let f2 = Fr::from_str(
29        "1305028103380024953477151132159456965337646722479526711736847301646466538045",
30    )
31    .unwrap();
32
33    let g = EdwardsAffine::from_str(
34        "(15863623088992515880085393097393553694825975317405843389771115419751650972659, \
35         16950150798460657717958625567821834550301663161624707787222815936182638968203)",
36    )
37    .unwrap();
38    let f1f2g = EdwardsAffine::from_str(
39        "(20773645713088336957786354488799297695596635653208610804806657050882264237947, \
40         19987327827845206670850937090314462639017692512983955920885166014935289314257)",
41    )
42    .unwrap();
43
44    assert!(!g.is_zero());
45    assert!(!f1f2g.is_zero());
46
47    let f1g = g.mul(f1).into_affine();
48    assert_eq!(g.mul(f1 * &f2).into_affine(), f1f2g);
49    assert_eq!(f1g.mul(f2).into_affine(), f1f2g);
50}
51
52#[test]
53fn test_montgomery_conversion() {
54    montgomery_conversion_test::<EdwardsParameters>();
55}