blob: dd38ec71c5426a8cf6b6d73c983ee3630752acde [file] [log] [blame]
#![cfg(feature = "std")]
use tabled::tables::IterTable;
use crate::matrix::Matrix;
use testing_table::test_table;
test_table!(
iter_table,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()),
"+-----+-----+-----+"
"| 0-0 | 0-1 | 0-2 |"
"+-----+-----+-----+"
"| 1-0 | 1-1 | 1-2 |"
"+-----+-----+-----+"
"| 2-0 | 2-1 | 2-2 |"
"+-----+-----+-----+"
);
test_table!(
iter_table_cols,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).columns(3),
"+-----+-----+-----+"
"| 0-0 | 0-1 | 0-2 |"
"+-----+-----+-----+"
"| 1-0 | 1-1 | 1-2 |"
"+-----+-----+-----+"
"| 2-0 | 2-1 | 2-2 |"
"+-----+-----+-----+"
);
test_table!(
iter_table_cols_less,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).columns(2),
"+-----+-----+"
"| 0-0 | 0-1 |"
"+-----+-----+"
"| 1-0 | 1-1 |"
"+-----+-----+"
"| 2-0 | 2-1 |"
"+-----+-----+"
);
test_table!(
iter_table_cols_zero,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).columns(0),
""
);
test_table!(
iter_table_iterator,
{
let mut buf = String::new();
IterTable::new((0..3).map(|i: usize| (0..5).map(move |j: usize| format!("{i},{j}")))).fmt(&mut buf).unwrap();
buf
},
"+-----+-----+-----+-----+-----+"
"| 0,0 | 0,1 | 0,2 | 0,3 | 0,4 |"
"+-----+-----+-----+-----+-----+"
"| 1,0 | 1,1 | 1,2 | 1,3 | 1,4 |"
"+-----+-----+-----+-----+-----+"
"| 2,0 | 2,1 | 2,2 | 2,3 | 2,4 |"
"+-----+-----+-----+-----+-----+"
);
test_table!(
iter_table_width,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).width(2),
"+----+----+----+"
"| 0- | 0- | 0- |"
"+----+----+----+"
"| 1- | 1- | 1- |"
"+----+----+----+"
"| 2- | 2- | 2- |"
"+----+----+----+"
);
test_table!(
iter_table_height_does_not_work,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).height(5),
"+-----+-----+-----+"
"| 0-0 | 0-1 | 0-2 |"
"| | | |"
"| | | |"
"| | | |"
"| | | |"
"+-----+-----+-----+"
"| 1-0 | 1-1 | 1-2 |"
"| | | |"
"| | | |"
"| | | |"
"| | | |"
"+-----+-----+-----+"
"| 2-0 | 2-1 | 2-2 |"
"| | | |"
"| | | |"
"| | | |"
"| | | |"
"+-----+-----+-----+"
);
test_table!(
iter_table_sniff_0,
IterTable::new(Matrix::with_no_frame(3, 3).to_vec()).sniff(0),
""
);
test_table!(
iter_table_multiline,
IterTable::new(
vec![
vec!["0", "1", "2", "3"],
vec!["0\n1\n2\n3\n4", "0\n1\n2\n\n\n3\n4", "0\n1\n2\n3\n4\n\n\n", "0\n1\n2\n\n\n3\n4\n"]
]
),
"+---+---+---+---+"
"| 0 | 1 | 2 | 3 |"
"+---+---+---+---+"
"| 0 | 0 | 0 | 0 |"
"| 1 | 1 | 1 | 1 |"
"| 2 | 2 | 2 | 2 |"
"| 3 | | 3 | |"
"| 4 | | 4 | |"
"| | 3 | | 3 |"
"| | 4 | | 4 |"
"| | | | |"
"+---+---+---+---+"
);
test_table!(
iter_table_multiline_sniff_1,
IterTable::new(
vec![
vec!["0", "1", "2", "3"],
vec!["0\n1\n2\n3\n4", "0\n1\n2\n\n\n3\n4", "0\n1\n2\n3\n4\n\n\n", "0\n1\n2\n\n\n3\n4\n"]
]
)
.sniff(1),
"+---+---+---+---+\n| 0 | 1 | 2 | 3 |\n+---+---+---+---+\n| 0\n1\n2\n3\n4 | 0\n1\n2\n\n\n3\n4 | 0\n1\n2\n3\n4\n\n\n | 0\n1\n2\n\n\n3\n4\n |\n+---+---+---+---+"
);
test_table!(
iter_table_multiline_sniff_2,
IterTable::new(
vec![
vec!["0", "1", "2", "3"],
vec!["0\n1\n2\n3\n4", "0\n1\n2\n\n\n3\n4", "0\n1\n2\n3\n4\n\n\n", "0\n1\n2\n\n\n3\n4\n"],
vec!["0\n1\n2\n3\n4", "0\n1\n2\n\n\n3\n4", "0\n1\n2\n3\n4\n\n\n", "0\n1\n2\n\n\n3\n4\n"],
]
)
.sniff(2),
"+---+---+---+---+\n| 0 | 1 | 2 | 3 |\n+---+---+---+---+\n| 0 | 0 | 0 | 0 |\n| 1 | 1 | 1 | 1 |\n| 2 | 2 | 2 | 2 |\n| 3 | | 3 | |\n| 4 | | 4 | |\n| | 3 | | 3 |\n| | 4 | | 4 |\n| | | | |\n+---+---+---+---+\n| 0\n1\n2\n3\n4 | 0\n1\n2\n\n\n3\n4 | 0\n1\n2\n3\n4\n\n\n | 0\n1\n2\n\n\n3\n4\n |\n+---+---+---+---+"
);
test_table!(
iter_table_multiline_height_work,
IterTable::new(
vec![
vec!["0", "1", "2", "3"],
vec!["0\n1\n2\n3\n4", "0\n1\n2\n\n\n3\n4", "0\n1\n2\n3\n4\n\n\n", "0\n1\n2\n\n\n3\n4\n"]
]
)
.height(3)
,
"+---+---+---+---+"
"| 0 | 1 | 2 | 3 |"
"| | | | |"
"| | | | |"
"+---+---+---+---+"
"| 0 | 0 | 0 | 0 |"
"| 1 | 1 | 1 | 1 |"
"| 2 | 2 | 2 | 2 |"
"+---+---+---+---+"
);
test_table!(
iter_table_sniff_cut,
IterTable::new(
vec![
vec!["12", "12", "22", "32"],
vec!["0", "0", "0", "0"],
vec!["023", "123", "223", "323"],
]
)
.sniff(2)
,
"+----+----+----+----+"
"| 12 | 12 | 22 | 32 |"
"+----+----+----+----+"
"| 0 | 0 | 0 | 0 |"
"+----+----+----+----+"
"| 02 | 12 | 22 | 32 |"
"+----+----+----+----+"
);
test_table!(
iter_table_sniff,
IterTable::new(
vec![
vec!["023", "123", "223", "323"],
vec!["12", "12", "22", "32"],
vec!["0", "0", "0", "0"],
]
)
.sniff(2)
,
"+-----+-----+-----+-----+"
"| 023 | 123 | 223 | 323 |"
"+-----+-----+-----+-----+"
"| 12 | 12 | 22 | 32 |"
"+-----+-----+-----+-----+"
"| 0 | 0 | 0 | 0 |"
"+-----+-----+-----+-----+"
);