2022-10-03 18:40:16 +02:00
|
|
|
use nu_test_support::nu;
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_0() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 3]]] | table"#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬────────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼────────────────┤\
|
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ [list 3 items] │\
|
|
|
|
╰───┴───┴───┴────────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_collapse_0() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 3]]] | table --collapse"#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
2022-12-15 15:47:04 +01:00
|
|
|
"╭───┬───┬───╮│ a │ b │ c │ ─── ─── ─── │ 1 │ 2 │ 3 │ ─── ─── ─── │ 4 │ 5 │ 1 ││ │ ─── │ │ │ 2 ││ │ ─── │ │ │ 3 │╰───┴───┴───╯"
|
2022-10-03 18:40:16 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_expand_0() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 3]]] | table --expand"#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬───────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼───────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬───╮ │\
|
2022-10-03 18:40:16 +02:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ 3 │ │\
|
|
|
|
│ │ │ │ ╰───┴───╯ │\
|
|
|
|
╰───┴───┴───┴───────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2023-01-15 03:03:32 +01:00
|
|
|
// I am not sure whether the test is platform dependent, cause we don't set a term_width on our own
|
2022-11-16 15:03:56 +01:00
|
|
|
#[test]
|
2023-01-15 03:03:32 +01:00
|
|
|
fn table_expand_exceed_overlap_0() {
|
2022-11-16 15:03:56 +01:00
|
|
|
// no expand
|
|
|
|
|
|
|
|
let actual = nu!(r#"[[a b, c]; [xxxxxxxxxxxxxxxxxxxxxx 2 3] [4 5 [1 2 3]]] | table --expand"#);
|
|
|
|
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬────────────────────────┬───┬───────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼────────────────────────┼───┼───────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ xxxxxxxxxxxxxxxxxxxxxx │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬───╮ │\
|
2022-11-16 15:03:56 +01:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ 3 │ │\
|
|
|
|
│ │ │ │ ╰───┴───╯ │\
|
|
|
|
╰───┴────────────────────────┴───┴───────────╯",
|
|
|
|
);
|
|
|
|
|
|
|
|
// expand
|
|
|
|
|
|
|
|
let actual = nu!(
|
|
|
|
r#"[[a b, c]; [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2 3] [4 5 [1 2 3]]] | table --expand"#
|
|
|
|
);
|
|
|
|
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭──────┬───────────────────────────────────────────────────┬─────┬─────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├──────┼───────────────────────────────────────────────────┼─────┼─────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬───╮ │\
|
2022-11-16 15:03:56 +01:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ 3 │ │\
|
|
|
|
│ │ │ │ ╰───┴───╯ │\
|
|
|
|
╰──────┴───────────────────────────────────────────────────┴─────┴─────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2022-10-03 18:40:16 +02:00
|
|
|
#[test]
|
|
|
|
fn table_expand_deep_0() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 2 3]]]] | table --expand --expand-deep=1"#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬────────────────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼────────────────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬────────────────╮ │\
|
2022-10-03 18:40:16 +02:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ [list 3 items] │ │\
|
|
|
|
│ │ │ │ ╰───┴────────────────╯ │\
|
|
|
|
╰───┴───┴───┴────────────────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_expand_deep_1() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 2 3]]]] | table --expand --expand-deep=0"#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬────────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼────────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ [list 3 items] │\
|
2022-10-03 18:40:16 +02:00
|
|
|
╰───┴───┴───┴────────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_expand_flatten_0() {
|
|
|
|
let actual = nu!(r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 1 1]]]] | table --expand --flatten "#);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬───────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼───────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬───────╮ │\
|
2022-10-03 18:40:16 +02:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ 1 1 1 │ │\
|
|
|
|
│ │ │ │ ╰───┴───────╯ │\
|
|
|
|
╰───┴───┴───┴───────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_expand_flatten_1() {
|
|
|
|
let actual = nu!(
|
|
|
|
r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 1 1]]]] | table --expand --flatten --flatten-separator=,"#
|
|
|
|
);
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬───────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼───────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬───────╮ │\
|
2022-10-03 18:40:16 +02:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ 1,1,1 │ │\
|
|
|
|
│ │ │ │ ╰───┴───────╯ │\
|
|
|
|
╰───┴───┴───┴───────────────╯"
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_expand_flatten_and_deep_1() {
|
|
|
|
let actual = nu!(
|
|
|
|
r#"[[a b, c]; [1 2 3] [4 5 [1 2 [1 [1 1 1] 1]]]] | table --expand --expand-deep=2 --flatten --flatten-separator=,"#
|
|
|
|
);
|
|
|
|
|
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
|
|
|
"╭───┬───┬───┬────────────────────────────────╮\
|
|
|
|
│ # │ a │ b │ c │\
|
|
|
|
├───┼───┼───┼────────────────────────────────┤\
|
2022-12-05 00:47:46 +01:00
|
|
|
│ 0 │ 1 │ 2 │ 3 │\
|
|
|
|
│ 1 │ 4 │ 5 │ ╭───┬────────────────────────╮ │\
|
2022-10-03 18:40:16 +02:00
|
|
|
│ │ │ │ │ 0 │ 1 │ │\
|
|
|
|
│ │ │ │ │ 1 │ 2 │ │\
|
|
|
|
│ │ │ │ │ 2 │ ╭───┬────────────────╮ │ │\
|
|
|
|
│ │ │ │ │ │ │ 0 │ 1 │ │ │\
|
|
|
|
│ │ │ │ │ │ │ 1 │ [list 3 items] │ │ │\
|
|
|
|
│ │ │ │ │ │ │ 2 │ 1 │ │ │\
|
|
|
|
│ │ │ │ │ │ ╰───┴────────────────╯ │ │\
|
|
|
|
│ │ │ │ ╰───┴────────────────────────╯ │\
|
|
|
|
╰───┴───┴───┴────────────────────────────────╯"
|
|
|
|
);
|
|
|
|
}
|
2022-10-10 14:32:55 +02:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
#[cfg(not(windows))]
|
|
|
|
fn external_with_too_much_stdout_should_not_hang_nu() {
|
|
|
|
use nu_test_support::fs::Stub::FileWithContent;
|
|
|
|
use nu_test_support::pipeline;
|
|
|
|
use nu_test_support::playground::Playground;
|
|
|
|
Playground::setup("external with too much stdout", |dirs, sandbox| {
|
|
|
|
let bytes: usize = 81920;
|
|
|
|
let mut large_file_body = String::with_capacity(bytes);
|
|
|
|
for _ in 0..bytes {
|
2022-10-18 20:13:36 +02:00
|
|
|
large_file_body.push('a');
|
2022-10-10 14:32:55 +02:00
|
|
|
}
|
|
|
|
sandbox.with_files(vec![FileWithContent("a_large_file.txt", &large_file_body)]);
|
|
|
|
|
|
|
|
let actual = nu!(
|
|
|
|
cwd: dirs.test(), pipeline(
|
|
|
|
r#"
|
|
|
|
cat a_large_file.txt | table
|
|
|
|
"#
|
|
|
|
));
|
|
|
|
|
|
|
|
assert_eq!(actual.out, large_file_body);
|
|
|
|
})
|
|
|
|
}
|
2022-10-21 18:02:25 +02:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_pagging_row_offset_overlap() {
|
|
|
|
let actual = nu!(r#"0..1000"#);
|
2022-12-15 18:55:15 +01:00
|
|
|
assert_eq!(actual.out, "╭─────┬─────╮│ 0 │ 0 ││ 1 │ 1 ││ 2 │ 2 ││ 3 │ 3 ││ 4 │ 4 ││ 5 │ 5 ││ 6 │ 6 ││ 7 │ 7 ││ 8 │ 8 ││ 9 │ 9 ││ 10 │ 10 ││ 11 │ 11 ││ 12 │ 12 ││ 13 │ 13 ││ 14 │ 14 ││ 15 │ 15 ││ 16 │ 16 ││ 17 │ 17 ││ 18 │ 18 ││ 19 │ 19 ││ 20 │ 20 ││ 21 │ 21 ││ 22 │ 22 ││ 23 │ 23 ││ 24 │ 24 ││ 25 │ 25 ││ 26 │ 26 ││ 27 │ 27 ││ 28 │ 28 ││ 29 │ 29 ││ 30 │ 30 ││ 31 │ 31 ││ 32 │ 32 ││ 33 │ 33 ││ 34 │ 34 ││ 35 │ 35 ││ 36 │ 36 ││ 37 │ 37 ││ 38 │ 38 ││ 39 │ 39 ││ 40 │ 40 ││ 41 │ 41 ││ 42 │ 42 ││ 43 │ 43 ││ 44 │ 44 ││ 45 │ 45 ││ 46 │ 46 ││ 47 │ 47 ││ 48 │ 48 ││ 49 │ 49 ││ 50 │ 50 ││ 51 │ 51 ││ 52 │ 52 ││ 53 │ 53 ││ 54 │ 54 ││ 55 │ 55 ││ 56 │ 56 ││ 57 │ 57 ││ 58 │ 58 ││ 59 │ 59 ││ 60 │ 60 ││ 61 │ 61 ││ 62 │ 62 ││ 63 │ 63 ││ 64 │ 64 ││ 65 │ 65 ││ 66 │ 66 ││ 67 │ 67 ││ 68 │ 68 ││ 69 │ 69 ││ 70 │ 70 ││ 71 │ 71 ││ 72 │ 72 ││ 73 │ 73 ││ 74 │ 74 ││ 75 │ 75 ││ 76 │ 76 ││ 77 │ 77 ││ 78 │ 78 ││ 79 │ 79 ││ 80 │ 80 ││ 81 │ 81 ││ 82 │ 82 ││ 83 │ 83 ││ 84 │ 84 ││ 85 │ 85 ││ 86 │ 86 ││ 87 │ 87 ││ 88 │ 88 ││ 89 │ 89 ││ 90 │ 90 ││ 91 │ 91 ││ 92 │ 92 ││ 93 │ 93 ││ 94 │ 94 ││ 95 │ 95 ││ 96 │ 96 ││ 97 │ 97 ││ 98 │ 98 ││ 99 │ 99 ││ 100 │ 100 ││ 101 │ 101 ││ 102 │ 102 ││ 103 │ 103 ││ 104 │ 104 ││ 105 │ 105 ││ 106 │ 106 ││ 107 │ 107 ││ 108 │ 108 ││ 109 │ 109 ││ 110 │ 110 ││ 111 │ 111 ││ 112 │ 112 ││ 113 │ 113 ││ 114 │ 114 ││ 115 │ 115 ││ 116 │ 116 ││ 117 │ 117 ││ 118 │ 118 ││ 119 │ 119 ││ 120 │ 120 ││ 121 │ 121 ││ 122 │ 122 ││ 123 │ 123 ││ 124 │ 124 ││ 125 │ 125 ││ 126 │ 126 ││ 127 │ 127 ││ 128 │ 128 ││ 129 │ 129 ││ 130 │ 130 ││ 131 │ 131 ││ 132 │ 132 ││ 133 │ 133 ││ 134 │ 134 ││ 135 │ 135 ││ 136 │ 136 ││ 137 │ 137 ││ 138 │ 138 ││ 139 │ 139 ││ 140 │ 140 ││ 141 │ 141 ││ 142 │ 142 ││ 143 │ 143 ││ 144 │ 144 ││ 145 │ 145 ││ 146 │ 146 ││ 147 │ 147 ││ 148 │ 148 ││ 149 │ 149 ││ 150 │ 150 ││ 151 │ 151 ││ 152 │ 152 ││ 153 │ 153 ││ 154 │ 154 ││ 155 │ 155 ││ 156 │ 156 ││ 157 │ 157 ││ 158 │ 158 ││ 159 │ 159 ││ 160 │ 160 ││ 161 │ 161 ││ 162 │ 162 ││ 163 │ 163 ││ 164 │ 164 ││ 165 │ 165 ││ 166 │ 166 ││ 167 │ 167 ││ 168 │ 168 ││ 169 │ 169 ││ 170 │ 170 ││ 171 │ 171 ││ 172 │ 172 ││ 173 │ 173 ││ 174 │ 174 ││ 175 │ 175 ││ 176 │ 176 ││ 177 │ 177 ││ 178 │ 178 ││ 179 │ 179 ││ 180 │ 180 ││ 181 │ 181 ││ 182 │ 182 ││ 183 │ 183 ││ 184 │ 184 ││ 185 │ 185 ││ 186 │ 186 ││ 187 │ 187 ││ 188 │ 188 ││ 189 │ 189 ││ 190 │ 190 ││ 191 │ 191 ││ 192 │ 192 ││ 193 │ 193 ││ 194 │ 194 ││ 195 │ 195 ││ 196 │ 196 ││ 197 │ 197 ││ 198 │ 198 ││ 199 │ 199 ││ 200 │ 200 ││ 201 │ 201 ││ 202 │ 202 ││ 203 │ 203 ││ 204 │ 204 ││ 205 │ 205 ││ 206 │ 206 ││ 207 │ 207 ││ 208 │ 208 ││ 209 │ 209 ││ 210 │ 210 ││ 211 │ 211 │
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn table_index_0() {
|
|
|
|
let actual = nu!(r#"[1 3 1 3 2 1 1]"#);
|
2022-10-21 18:02:25 +02:00
|
|
|
assert_eq!(
|
|
|
|
actual.out,
|
2022-12-15 18:55:15 +01:00
|
|
|
"╭───┬───╮│ 0 │ 1 ││ 1 │ 3 ││ 2 │ 1 ││ 3 │ 3 ││ 4 │ 2 ││ 5 │ 1 ││ 6 │ 1 │╰───┴───╯"
|
2022-10-21 18:02:25 +02:00
|
|
|
);
|
|
|
|
}
|