Skip to content
Snippets Groups Projects

working on FEC tests again

Merged STEVAN Antoine requested to merge tests into main
1 file
+ 43
25
Compare changes
  • Side-by-side
  • Inline
+ 43
25
@@ -306,9 +306,16 @@ mod tests {
n: usize,
recoding_steps: Vec<Vec<usize>>,
should_not_be_decodable: Vec<Vec<usize>>,
name: &str,
) {
let mut rng = ark_std::test_rng();
let test_case = format!("TEST | data: {} bytes, k: {}, n: {}", data.len(), k, n);
let test_case = format!(
"TEST | data: {} bytes, k: {}, n: {}, scenario: {}",
data.len(),
k,
n,
name
);
let mut shards = encode::<F>(data, &Matrix::random(k, n, &mut rng))
.unwrap_or_else(|_| panic!("could not encode {test_case}"));
@@ -353,33 +360,44 @@ mod tests {
let ks = [3, 5];
let n = 5;
let recoding_steps = vec![
vec![2, 4], // = n
vec![1, 3], // = (n + 1)
vec![n, (n + 1)], // = (n + 2) = ((2, 4), (1, 3))
vec![0], // = (n + 3) = (0)
vec![(n + 3)], // = (n + 4) = (0)
];
let should_not_be_decodable = vec![
vec![2, 4, n],
vec![1, 3, (n + 1)],
vec![n, (n + 1), (n + 2)],
vec![1, 3, n, (n + 2)],
vec![2, 4, (n + 1), (n + 2)],
vec![1, 2, 3, 4, (n + 2)],
vec![0, (n + 3)],
vec![0, (n + 4)],
vec![(n + 3), (n + 4)],
let scenarii = [
(
"simple",
vec![
vec![2, 4], // = n
vec![1, 3], // = (n + 1)
vec![n, (n + 1)], // = (n + 2) = ((2, 4), (1, 3))
],
vec![
vec![2, 4, n],
vec![1, 3, (n + 1)],
vec![n, (n + 1), (n + 2)],
vec![1, 3, n, (n + 2)],
vec![2, 4, (n + 1), (n + 2)],
vec![1, 2, 3, 4, (n + 2)],
],
),
(
"chain",
vec![
vec![0], // = (n) = (0)
vec![(n)], // = (n + 1) = (0)
],
vec![vec![0, (n)], vec![0, (n + 1)], vec![(n), (n + 1)]],
),
];
for k in ks {
end_to_end_with_recoding_template::<Fr>(
&bytes,
k,
n,
recoding_steps.clone(),
should_not_be_decodable.clone(),
);
for (name, steps, should_not_decode) in scenarii.clone() {
end_to_end_with_recoding_template::<Fr>(
&bytes,
k,
n,
steps,
should_not_decode,
name,
);
}
}
}
Loading