Skip to content

Commit

Permalink
tests: add tests for different sample RNG kinds
Browse files Browse the repository at this point in the history
  • Loading branch information
jqnatividad committed Jan 7, 2024
1 parent 1107c50 commit 87b6ffe
Showing 1 changed file with 132 additions and 8 deletions.
140 changes: 132 additions & 8 deletions tests/test_sample.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,19 +86,55 @@ fn sample_seed_faster() {
);

let mut cmd = wrk.command("sample");
cmd.arg("--faster")
cmd.args(["--rng", "faster"])
.args(["--seed", "42"])
.arg("5")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["1", "b"],
svec!["6", "e"],
svec!["2", "a"],
svec!["8", "h"],
svec!["4", "c"],
svec!["5", "f"],
];
assert_eq!(got, expected);
}

#[test]
fn sample_seed_secure() {
let wrk = Workdir::new("sample_seed_secure");
wrk.create(
"in.csv",
vec![
svec!["R", "S"],
svec!["1", "b"],
svec!["2", "a"],
svec!["3", "d"],
svec!["4", "c"],
svec!["5", "f"],
svec!["6", "e"],
svec!["7", "i"],
svec!["8", "h"],
],
);

let mut cmd = wrk.command("sample");
cmd.args(["--rng", "cryptosecure"])
.args(["--seed", "42"])
.arg("5")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["8", "h"],
svec!["7", "i"],
svec!["3", "d"],
svec!["4", "c"],
svec!["6", "e"],
svec!["5", "f"],
];
assert_eq!(got, expected);
}
Expand Down Expand Up @@ -217,16 +253,51 @@ fn sample_percentage_seed_indexed_faster() {
);

let mut cmd = wrk.command("sample");
cmd.arg("--faster")
cmd.args(["--rng", "faster"])
.args(["--seed", "42"])
.arg("0.4")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["1", "b"],
svec!["2", "a"],
svec!["4", "c"],
svec!["6", "e"],
svec!["7", "i"],
];
assert_eq!(got, expected);
}

#[test]
fn sample_percentage_seed_indexed_secure() {
let wrk = Workdir::new("sample_indexed_secure");
wrk.create_indexed(
"in.csv",
vec![
svec!["R", "S"],
svec!["1", "b"],
svec!["2", "a"],
svec!["3", "d"],
svec!["4", "c"],
svec!["5", "f"],
svec!["6", "e"],
svec!["7", "i"],
svec!["8", "h"],
svec!["8", "h"],
],
);

let mut cmd = wrk.command("sample");
cmd.args(["--rng", "cryptosecure"])
.args(["--seed", "42"])
.arg("0.4")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["3", "d"],
svec!["5", "f"],
svec!["8", "h"],
];
assert_eq!(got, expected);
Expand Down Expand Up @@ -319,18 +390,71 @@ fn sample_indexed_random_access_faster() {
);

let mut cmd = wrk.command("sample");
cmd.arg("--faster")
cmd.args(["--rng", "faster"])
.args(["--seed", "42"])
.arg("4")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["4", "c"],
svec!["19", "s"],
svec!["16", "p"],
svec!["15", "o"],
svec!["17", "q"],
];
assert_eq!(got, expected);
}

#[test]
fn sample_indexed_random_access_secure() {
let wrk = Workdir::new("sample_indexed_random_access_secure");
wrk.create_indexed(
"in.csv",
vec![
svec!["R", "S"],
svec!["1", "b"],
svec!["2", "a"],
svec!["3", "d"],
svec!["4", "c"],
svec!["5", "f"],
svec!["6", "e"],
svec!["7", "i"],
svec!["8", "h"],
svec!["9", "i"],
svec!["10", "j"],
svec!["11", "k"],
svec!["12", "l"],
svec!["13", "m"],
svec!["14", "n"],
svec!["15", "o"],
svec!["16", "p"],
svec!["17", "q"],
svec!["18", "r"],
svec!["19", "s"],
svec!["20", "t"],
svec!["21", "u"],
svec!["22", "v"],
svec!["23", "w"],
svec!["24", "x"],
svec!["25", "y"],
svec!["26", "z"],
],
);

let mut cmd = wrk.command("sample");
cmd.args(["--rng", "cryptosecure"])
.args(["--seed", "42"])
.arg("4")
.arg("in.csv");

let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["R", "S"],
svec!["24", "x"],
svec!["10", "j"],
svec!["26", "z"],
svec!["6", "e"],
];
assert_eq!(got, expected);
}
Expand Down

0 comments on commit 87b6ffe

Please sign in to comment.