-
Notifications
You must be signed in to change notification settings - Fork 70
/
test_explode.rs
80 lines (74 loc) · 1.95 KB
/
test_explode.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
use crate::workdir::Workdir;
#[test]
fn explode() {
let wrk = Workdir::new("explode");
wrk.create(
"data.csv",
vec![
svec!["name", "colors"],
svec!["Mary", "yellow"],
svec!["John", "blue|orange"],
svec!["Jack", ""],
],
);
let mut cmd = wrk.command("explode");
cmd.arg("colors").arg("|").arg("data.csv");
let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["name", "colors"],
svec!["Mary", "yellow"],
svec!["John", "blue"],
svec!["John", "orange"],
svec!["Jack", ""],
];
assert_eq!(got, expected);
}
#[test]
fn explode_rename() {
let wrk = Workdir::new("explode");
wrk.create(
"data.csv",
vec![
svec!["name", "colors"],
svec!["Mary", "yellow"],
svec!["John", "blue|orange"],
svec!["Jack", ""],
],
);
let mut cmd = wrk.command("explode");
cmd.arg("colors")
.args(["--rename", "color"])
.arg("|")
.arg("data.csv");
let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["name", "color"],
svec!["Mary", "yellow"],
svec!["John", "blue"],
svec!["John", "orange"],
svec!["Jack", ""],
];
assert_eq!(got, expected);
}
#[test]
fn explode_no_headers() {
let wrk = Workdir::new("explode");
wrk.create(
"data.csv",
vec![
svec!["Mary", "yellow"],
svec!["John", "blue|orange"],
svec!["Jack", ""],
],
);
let mut cmd = wrk.command("explode");
cmd.arg("2").arg("|").arg("--no-headers").arg("data.csv");
let got: Vec<Vec<String>> = wrk.read_stdout(&mut cmd);
let expected = vec![
svec!["Mary", "yellow"],
svec!["John", "blue"],
svec!["John", "orange"],
svec!["Jack", ""],
];
assert_eq!(got, expected);
}