Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Pratyush committed Sep 17, 2019
1 parent 5cf7d5c commit 5a53d8d
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 63 deletions.
12 changes: 8 additions & 4 deletions algebra/src/biginteger/tests.rs
@@ -1,5 +1,7 @@
use crate::biginteger::BigInteger;
use rand;
use rand::SeedableRng;
use crate::UniformRand;
use rand_xorshift::XorShiftRng;

fn biginteger_arithmetic_test<B: BigInteger>(a: B, b: B, zero: B) {
// zero == zero
Expand Down Expand Up @@ -50,15 +52,17 @@ fn biginteger_bits_test<B: BigInteger>() {

fn biginteger_bytes_test<B: BigInteger>() {
let mut bytes = [0u8; 256];
let x: B = rand::random();
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);
let x: B = UniformRand::rand(&mut rng);
x.write(bytes.as_mut()).unwrap();
let y = B::read(bytes.as_ref()).unwrap();
assert_eq!(x, y);
}

fn test_biginteger<B: BigInteger>(zero: B) {
let a: B = rand::random();
let b: B = rand::random();
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);
let a: B = UniformRand::rand(&mut rng);
let b: B = UniformRand::rand(&mut rng);
biginteger_arithmetic_test(a, b, zero);
biginteger_bytes_test::<B>();
biginteger_bits_test::<B>();
Expand Down
20 changes: 10 additions & 10 deletions algebra/src/curves/tests.rs
Expand Up @@ -9,7 +9,7 @@ use rand_xorshift::XorShiftRng;
pub const ITERATIONS: usize = 10;

fn random_addition_test<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..ITERATIONS {
let a = G::rand(&mut rng);
Expand Down Expand Up @@ -88,7 +88,7 @@ fn random_addition_test<G: ProjectiveCurve>() {
}

fn random_multiplication_test<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..ITERATIONS {
let mut a = G::rand(&mut rng);
Expand Down Expand Up @@ -120,7 +120,7 @@ fn random_multiplication_test<G: ProjectiveCurve>() {
}

fn random_doubling_test<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..ITERATIONS {
let mut a = G::rand(&mut rng);
Expand All @@ -147,7 +147,7 @@ fn random_doubling_test<G: ProjectiveCurve>() {
}

fn random_negation_test<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..ITERATIONS {
let r = G::rand(&mut rng);
Expand Down Expand Up @@ -177,7 +177,7 @@ fn random_negation_test<G: ProjectiveCurve>() {
}

fn random_transformation_test<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..ITERATIONS {
let g = G::rand(&mut rng);
Expand All @@ -196,14 +196,14 @@ fn random_transformation_test<G: ProjectiveCurve>() {
assert!(!i.is_normalized());
}

use rand::distributions::{IndependentSample, Range};
let between = Range::new(0, ITERATIONS);
use rand::distributions::{Distribution, Uniform};
let between = Uniform::from(0..ITERATIONS);
// Sprinkle in some normalized points
for _ in 0..5 {
v[between.ind_sample(&mut rng)] = G::zero();
v[between.sample(&mut rng)] = G::zero();
}
for _ in 0..5 {
let s = between.ind_sample(&mut rng);
let s = between.sample(&mut rng);
v[s] = v[s].into_affine().into_projective();
}

Expand All @@ -222,7 +222,7 @@ fn random_transformation_test<G: ProjectiveCurve>() {
}

pub fn curve_tests<G: ProjectiveCurve>() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

// Negation edge case with zero.
{
Expand Down
2 changes: 1 addition & 1 deletion algebra/src/fields/bls12_377/fq6.rs
Expand Up @@ -200,7 +200,7 @@ use rand_xorshift::XorShiftRng;

#[test]
fn test_fq2_mul_nonresidue() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

let nqr = Fq2::new(Fq::zero(), Fq::one());
println!("One: {:?}", Fq::one());
Expand Down
28 changes: 14 additions & 14 deletions algebra/src/fields/bls12_377/tests.rs
Expand Up @@ -123,7 +123,7 @@ fn test_fq_repr_num_bits() {
fn test_fq_add_assign() {
// Test associativity

let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
// Generate a, b, c and ensure (a + b) + c == a + (b + c).
Expand All @@ -147,7 +147,7 @@ fn test_fq_add_assign() {

#[test]
fn test_fq_sub_assign() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
// Ensure that (a - b) + (b - a) = 0.
Expand All @@ -167,7 +167,7 @@ fn test_fq_sub_assign() {

#[test]
fn test_fq_mul_assign() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000000 {
// Ensure that (a * b) * c = a * (b * c)
Expand Down Expand Up @@ -212,7 +212,7 @@ fn test_fq_mul_assign() {

#[test]
fn test_fq_squaring() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000000 {
// Ensure that (a * a) = a^2
Expand All @@ -232,7 +232,7 @@ fn test_fq_squaring() {
fn test_fq_inverse() {
assert!(Fq::zero().inverse().is_none());

let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

let one = Fq::one();

Expand All @@ -247,7 +247,7 @@ fn test_fq_inverse() {

#[test]
fn test_fq_double_in_place() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
// Ensure doubling a is equivalent to adding a to itself.
Expand All @@ -267,7 +267,7 @@ fn test_fq_negate() {
assert!(a.is_zero());
}

let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
// Ensure (a - (-a)) = 0.
Expand All @@ -281,7 +281,7 @@ fn test_fq_negate() {

#[test]
fn test_fq_pow() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for i in 0..1000 {
// Exponentiate by various small numbers and ensure it consists with repeated
Expand All @@ -305,7 +305,7 @@ fn test_fq_pow() {

#[test]
fn test_fq_sqrt() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

assert_eq!(Fq::zero().sqrt().unwrap(), Fq::zero());

Expand Down Expand Up @@ -428,7 +428,7 @@ fn test_fq2_legendre() {

#[test]
fn test_fq2_mul_nonresidue() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

let nqr = Fq2::new(Fq::zero(), Fq::one());

Expand All @@ -448,7 +448,7 @@ fn test_fq2_mul_nonresidue() {

#[test]
fn test_fq6_mul_by_1() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
let c1 = Fq2::rand(&mut rng);
Expand All @@ -464,7 +464,7 @@ fn test_fq6_mul_by_1() {

#[test]
fn test_fq6_mul_by_01() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
let c0 = Fq2::rand(&mut rng);
Expand All @@ -481,7 +481,7 @@ fn test_fq6_mul_by_01() {

#[test]
fn test_fq12_mul_by_014() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
let c0 = Fq2::rand(&mut rng);
Expand All @@ -502,7 +502,7 @@ fn test_fq12_mul_by_014() {

#[test]
fn test_fq12_mul_by_034() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

for _ in 0..1000 {
let c0 = Fq2::rand(&mut rng);
Expand Down
2 changes: 1 addition & 1 deletion algebra/src/fields/bls12_381/fq12.rs
Expand Up @@ -218,7 +218,7 @@ use rand_xorshift::XorShiftRng;

#[test]
fn test_fq6_mul_nonresidue() {
let mut rng = XorShiftRng::from_seed([0x5dbe6259, 0x8d313d76, 0x3237db17, 0xe5bc0654]);
let mut rng = XorShiftRng::seed_from_u64(1231275789u64);

let nqr = Fq6::new(Fq2::zero(), Fq2::one(), Fq2::zero());

Expand Down

0 comments on commit 5a53d8d

Please sign in to comment.