arnaucube
arnaucube/ark-curves-cherry-pickedPublic Self-hosted repository
ark-curves-cherry-picked/bw6_761/src/fields/tests.rs
bw6_761/src/fields/tests.rsRaw
 1use ark_ff::{Field, PrimeField};
 2use ark_serialize::{buffer_bit_byte_size, CanonicalSerialize};
 3use ark_std::test_rng;
 4use rand::Rng;
 5
 6use crate::*;
 7
 8use ark_algebra_test_templates::fields::*;
 9
10#[test]
11fn test_fr() {
12    let mut rng = test_rng();
13    let a: Fr = rng.gen();
14    let b: Fr = rng.gen();
15    field_test(a, b);
16    sqrt_field_test(a);
17    primefield_test::<Fr>();
18}
19
20#[test]
21fn test_fq() {
22    let mut rng = test_rng();
23    let a: Fq = rng.gen();
24    let b: Fq = rng.gen();
25    field_test(a, b);
26    primefield_test::<Fq>();
27    sqrt_field_test(a);
28
29    let byte_size = a.serialized_size();
30    let (_, buffer_size) = buffer_bit_byte_size(Fq::size_in_bits());
31    assert_eq!(byte_size, buffer_size);
32    field_serialization_test::<Fq>(byte_size);
33}
34
35#[test]
36fn test_fq3() {
37    let mut rng = test_rng();
38    let a: Fq3 = rng.gen();
39    let b: Fq3 = rng.gen();
40    field_test(a, b);
41    sqrt_field_test(a);
42    frobenius_test::<Fq3, _>(Fq::characteristic(), 13);
43}
44
45#[test]
46fn test_fq6() {
47    let mut rng = test_rng();
48    let a: Fq6 = rng.gen();
49    let b: Fq6 = rng.gen();
50    field_test(a, b);
51    frobenius_test::<Fq6, _>(Fq::characteristic(), 13);
52}