summaryrefslogtreecommitdiffstats
path: root/third_party/rust/prio/tests
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/prio/tests')
-rw-r--r--third_party/rust/prio/tests/discrete_gauss.rs25
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_100.json92
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_2.342.json54
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_3.json62
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_41293847.json98
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_9.json80
-rw-r--r--third_party/rust/prio/tests/test_vectors/discrete_gauss_9999999999999999999999.json98
7 files changed, 252 insertions, 257 deletions
diff --git a/third_party/rust/prio/tests/discrete_gauss.rs b/third_party/rust/prio/tests/discrete_gauss.rs
index 5b3ef4c5b3..d72138b64c 100644
--- a/third_party/rust/prio/tests/discrete_gauss.rs
+++ b/third_party/rust/prio/tests/discrete_gauss.rs
@@ -4,7 +4,7 @@ use num_bigint::{BigInt, BigUint};
use num_rational::Ratio;
use num_traits::FromPrimitive;
use prio::dp::distributions::DiscreteGaussian;
-use prio::vdaf::xof::SeedStreamSha3;
+use prio::vdaf::xof::SeedStreamTurboShake128;
use rand::distributions::Distribution;
use rand::SeedableRng;
use serde::Deserialize;
@@ -12,7 +12,7 @@ use serde::Deserialize;
/// A test vector of discrete Gaussian samples, produced by the python reference
/// implementation for [[CKS20]]. The script used to generate the test vector can
/// be found in this gist:
-/// https://gist.github.com/ooovi/529c00fc8a7eafd068cd076b78fc424e
+/// https://gist.github.com/divergentdave/94cab188e84a4764db6cdd1288e6ead3
/// The python reference implementation is here:
/// https://github.com/IBM/discrete-gaussian-differential-privacy
///
@@ -29,20 +29,15 @@ pub struct DiscreteGaussTestVector {
#[test]
fn discrete_gauss_reference() {
let test_vectors: Vec<DiscreteGaussTestVector> = vec![
- serde_json::from_str(include_str!(concat!("test_vectors/discrete_gauss_3.json"))).unwrap(),
- serde_json::from_str(include_str!(concat!("test_vectors/discrete_gauss_9.json"))).unwrap(),
- serde_json::from_str(include_str!(concat!(
- "test_vectors/discrete_gauss_100.json"
- )))
- .unwrap(),
- serde_json::from_str(include_str!(concat!(
- "test_vectors/discrete_gauss_41293847.json"
- )))
- .unwrap(),
- serde_json::from_str(include_str!(concat!(
+ serde_json::from_str(include_str!("test_vectors/discrete_gauss_3.json")).unwrap(),
+ serde_json::from_str(include_str!("test_vectors/discrete_gauss_9.json")).unwrap(),
+ serde_json::from_str(include_str!("test_vectors/discrete_gauss_100.json")).unwrap(),
+ serde_json::from_str(include_str!("test_vectors/discrete_gauss_41293847.json")).unwrap(),
+ serde_json::from_str(include_str!(
"test_vectors/discrete_gauss_9999999999999999999999.json"
- )))
+ ))
.unwrap(),
+ serde_json::from_str(include_str!("test_vectors/discrete_gauss_2.342.json")).unwrap(),
];
for test_vector in test_vectors {
@@ -53,7 +48,7 @@ fn discrete_gauss_reference() {
.unwrap();
// check samples are consistent
- let mut rng = SeedStreamSha3::from_seed(test_vector.seed);
+ let mut rng = SeedStreamTurboShake128::from_seed(test_vector.seed);
let samples: Vec<BigInt> = (0..test_vector.samples.len())
.map(|_| sampler.sample(&mut rng))
.collect();
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_100.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_100.json
index fe8114c258..84425db753 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_100.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_100.json
@@ -1,54 +1,54 @@
{
"samples": [
- -74,
+ -54,
+ 61,
+ -113,
+ -98,
+ 21,
+ -91,
+ 72,
+ 112,
+ -29,
68,
- -15,
- 175,
- -120,
- -2,
- -73,
- 108,
- 40,
- 69,
- 81,
- -135,
- 247,
- 32,
- 107,
+ 84,
+ -27,
+ -109,
+ -20,
+ -24,
+ -69,
+ -168,
+ 199,
+ -122,
+ 59,
+ 35,
+ 282,
+ 113,
+ 4,
+ -91,
-61,
- 164,
- 22,
- 118,
- 37,
- -58,
- 147,
- 65,
- 53,
- 9,
- -96,
- -130,
- 100,
- 48,
+ -28,
+ 137,
+ 57,
+ 109,
+ 2,
+ 17,
+ -20,
+ 38,
+ -16,
+ 18,
+ -63,
+ 1,
+ -20,
-30,
- -2,
- -115,
- 56,
- 95,
- 119,
- 28,
- -101,
- 50,
- 39,
- 21,
- -6,
- -70,
- 131,
- 66,
- 81,
- -18,
- 94,
- 55,
- 20
+ -147,
+ -73,
+ -28,
+ -16,
+ -31,
+ 10,
+ -229,
+ -56,
+ -254
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 1,
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_2.342.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_2.342.json
index 7d9508c44e..c70e3b06e1 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_2.342.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_2.342.json
@@ -1,54 +1,54 @@
{
"samples": [
-1,
- 4,
- 2,
- 0,
- 0,
- -2,
1,
- -5,
+ 6,
2,
+ -4,
-1,
- 0,
- 0,
- 0,
- 3,
- -6,
- 5,
+ -2,
2,
- 1,
- -1,
+ -2,
-3,
0,
- 2,
- -3,
-2,
+ -1,
+ 3,
2,
- -3,
- 1,
1,
2,
- -3,
- -1,
+ -7,
-1,
+ 0,
4,
- 2,
- -2,
1,
-1,
0,
- -3,
+ 1,
+ -2,
+ 0,
1,
2,
+ 0,
+ 6,
+ -2,
+ 2,
+ 0,
+ -2,
+ 2,
+ 6,
1,
+ 0,
+ -4,
+ -3,
+ -1,
-1,
- 3,
- 1,
2,
- -3,
+ 0,
+ 0,
-2,
- 0
+ 0,
+ 2
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 500,
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_3.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_3.json
index d4a3486db0..363c136eb8 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_3.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_3.json
@@ -1,54 +1,54 @@
{
"samples": [
- 1,
+ -3,
-1,
-2,
1,
+ 7,
-1,
- 0,
- 1,
- -1,
- 0,
- 2,
- 3,
- 4,
- 1,
- 1,
-2,
- 4,
- 6,
+ 1,
-5,
+ 1,
-3,
- -1,
- 4,
- 0,
- 6,
- 2,
+ 3,
2,
- -4,
- -2,
-5,
+ -2,
+ 5,
+ -2,
+ 5,
+ -1,
-3,
2,
- 1,
- -3,
-2,
- 1,
+ -1,
-2,
- 1,
+ -2,
+ -1,
0,
- 3,
- -4,
- -4,
1,
- 3,
+ -1,
2,
- 1,
- 0,
+ -3,
+ 2,
+ -6,
+ -4,
+ -2,
+ -2,
+ -6,
-1,
- 1,
4,
- 1
+ -1,
+ 2,
+ -3,
+ 1,
+ -7,
+ -1,
+ 6,
+ 2,
+ -3,
+ 5
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 1,
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_41293847.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_41293847.json
index 213e919c6c..247b2c2451 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_41293847.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_41293847.json
@@ -1,54 +1,54 @@
{
"samples": [
- -10157810,
- -7944688,
- 80361481,
- -2601121,
- -2098394,
- -61204295,
- 250399,
- 62702361,
- -35117486,
- 14804891,
- -5043613,
- 34131059,
- -34448923,
- -24176095,
- 106518772,
- 44056972,
- 15910928,
- 63338376,
- 12839729,
- 11701052,
- -54254959,
- -11306071,
- -6005727,
- 29738939,
- -30284246,
- -47672638,
- 11549070,
- -17580447,
- -2973754,
- -298465,
- -15349002,
- 56970396,
- 35612502,
- -78720214,
- -6082493,
- -2759887,
- -11374460,
- 177253,
- -35234082,
- 42256563,
- 44219644,
- 86984413,
- -43711428,
- -16031438,
- 42572889,
- 39464625,
- -14433332,
- -7735634,
- 4403776
+ -28705712,
+ 12839166,
+ 68574447,
+ 1993202,
+ 17416465,
+ 32526761,
+ 1212638,
+ -44876888,
+ 16502539,
+ -57954542,
+ -54567452,
+ -17421605,
+ 7569207,
+ 13482762,
+ -24573436,
+ 73067636,
+ -58069630,
+ -24924404,
+ 51409721,
+ -18659663,
+ -12752706,
+ 4308454,
+ -49095581,
+ -69009203,
+ -22975883,
+ 46983148,
+ 47341228,
+ -1860382,
+ 26901791,
+ -5079023,
+ -57635595,
+ -38560402,
+ 59065470,
+ 100046871,
+ -144954761,
+ -22089238,
+ -43816191,
+ -47986043,
+ 34106023,
+ 74194716,
+ -37681692,
+ 3946618,
+ 18344461,
+ -45770607,
+ -654004,
+ 31284526,
+ -50259979,
+ 28037461,
+ 2734567
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 1,
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_9.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_9.json
index 408c7489a7..b5df20d182 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_9.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_9.json
@@ -1,54 +1,54 @@
{
"samples": [
- 2,
- 14,
- -12,
- 10,
- -13,
- 1,
- 6,
- -10,
+ -6,
+ 7,
+ -3,
+ -7,
+ -14,
+ 4,
+ 11,
+ -22,
-1,
+ 8,
+ -9,
+ 12,
+ -9,
+ 20,
+ -16,
+ -10,
+ -8,
+ -15,
+ 6,
+ -8,
+ 7,
+ 12,
+ 1,
4,
+ -3,
+ -7,
+ 20,
+ 2,
+ 13,
+ -4,
-5,
1,
- -20,
- 1,
- -14,
+ 2,
+ -2,
+ 4,
+ -6,
2,
-5,
- 10,
- 3,
- 9,
- 10,
- 12,
- -4,
- 12,
- -4,
- -13,
- 7,
- -10,
-6,
2,
- 6,
- 18,
- -7,
- -11,
- 20,
- 1,
- -4,
- 14,
- 11,
- 5,
- 6,
- -1,
2,
- 5,
- 3,
- -8,
- -1,
- 6,
- -8
+ -5,
+ -10,
+ -9,
+ -15,
+ -2,
+ -3,
+ 1,
+ -13
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 1,
diff --git a/third_party/rust/prio/tests/test_vectors/discrete_gauss_9999999999999999999999.json b/third_party/rust/prio/tests/test_vectors/discrete_gauss_9999999999999999999999.json
index 396f5a4cf0..1b43f758bd 100644
--- a/third_party/rust/prio/tests/test_vectors/discrete_gauss_9999999999999999999999.json
+++ b/third_party/rust/prio/tests/test_vectors/discrete_gauss_9999999999999999999999.json
@@ -1,54 +1,54 @@
{
"samples": [
- 7826646418794481373730,
- 4044429794334089153683,
- -13887062284591122240746,
- 4816851335312673293131,
- 1899078604295677453383,
- -7819872990828024151405,
- 1164017821807881486579,
- -25360379570365624087817,
- 5906637163630390455939,
- 3730592807287609262846,
- 1737147847266613603450,
- 18593764766679058926154,
- 22724295990478919946193,
- -4396717652132313983045,
- -7933138830987043774425,
- 12204708418993708917398,
- 10716232788607487693156,
- -7423575920998904747964,
- -274262846168968742506,
- -24595460253341309777726,
- 1880635641243101726137,
- 10823060437484007979521,
- -2525077352000184270857,
- -1421364839539048815904,
- -2648842672480402351562,
- -7783156811031000955203,
- -1831198454606609539077,
- 905920470298728568753,
- -8805882598094077859729,
- 2949974625887521817722,
- 13071000629486423981714,
- 1311702736683393895126,
- -14044034250430823347919,
- 1421736709768854180193,
- 14824744520414922652958,
- 10752031849750698732804,
- -522118577625103067952,
- 2006618532306506057615,
- -7573105805904097888275,
- -14482966128638641002042,
- -11408400475022385123481,
- -17555433966245180572099,
- -6120185353438187140929,
- -4778266138627264471521,
- -19325342657405318133711,
- 3725950229250476135126,
- -7977400544074383347686,
- 2738166449787592433931,
- -1321521809406566447071
+ -7678632936135800555201,
+ -9832864446958915374632,
+ 3796223649719723548306,
+ -10458306547534276720045,
+ -9593524715689396783652,
+ -2184509652523057908030,
+ -6469904065015921866985,
+ 8555843521262785582921,
+ -3275061234860213279391,
+ -1712551617443682313245,
+ -4176263950279049852314,
+ -1041488124720108532833,
+ 2422891656983904955539,
+ -5406575579403973625234,
+ 4031989610743156091985,
+ -15897376981820943559856,
+ -9495308497775799052592,
+ -10542231739931574778478,
+ -811195020079942319200,
+ -6168725392123782999911,
+ 3572639345203916100181,
+ 9572138148079890711898,
+ 12973597810318272581841,
+ -10417671747756128178069,
+ -4499306785200793424437,
+ 24392853538076877246695,
+ 490509578119404728479,
+ -3153758591414179213424,
+ -2953031165864251687043,
+ 7687220020362800379045,
+ -2894825604535601473288,
+ -2484898457763802405625,
+ 2506976850588238983075,
+ -317271622218426183645,
+ 3771644622097191550823,
+ 14048201376263257821999,
+ 1011626374739477364716,
+ -7985335097085684878144,
+ -9834946916794550716888,
+ -7808156770298839154888,
+ -10888303506419120919014,
+ 20441738459254393472434,
+ -1142146934147582936699,
+ -380992974206599694131,
+ 14719724965924743443097,
+ 2738534455216435603182,
+ 16889459715609520924993,
+ 8450917371339563018232,
+ 3461026365290831355984
],
"seed": "000102030405060708090a0b0c0d0e0f",
"std_denom": 1,