blob: 0a8145ae2550dff138b1b8d915603ab284e372b5 [file] [log] [blame]
#![cfg(feature = "std")]
use tabled::settings::{
locator::ByColumnName,
object::{Columns, Rows, Segment},
Alignment, Modify, Padding, Style,
};
use crate::matrix::Matrix;
use testing_table::test_table;
test_table!(
full_alignment,
Matrix::new(3, 3).with(Style::psql()).with(Modify::new(Segment::all()).with(Alignment::left())),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | 2-1 | 2-2 "
);
test_table!(
head_and_data_alignment,
Matrix::new(3, 3)
.with(Modify::new(Rows::first()).with(Alignment::left()))
.with(Modify::new(Rows::new(1..)).with(Alignment::right())),
"+---+----------+----------+----------+"
"| N | column 0 | column 1 | column 2 |"
"+---+----------+----------+----------+"
"| 0 | 0-0 | 0-1 | 0-2 |"
"+---+----------+----------+----------+"
"| 1 | 1-0 | 1-1 | 1-2 |"
"+---+----------+----------+----------+"
"| 2 | 2-0 | 2-1 | 2-2 |"
"+---+----------+----------+----------+"
);
test_table!(
full_alignment_multiline,
Matrix::new(3, 3).insert((3, 2), "https://\nwww\n.\nredhat\n.com\n/en")
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Alignment::left())),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | https:// | 2-2 "
" | | www | "
" | | . | "
" | | redhat | "
" | | .com | "
" | | /en | "
);
test_table!(
vertical_alignment_test,
Matrix::new(3, 3)
.insert((2, 2), "E\nnde\navou\nros")
.insert((3, 2), "Red\nHat")
.insert((3, 3), "https://\nwww\n.\nredhat\n.com\n/en")
.with(Style::psql())
.with(Modify::new(Columns::new(1..)).with(Alignment::bottom())),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | | E | "
" | | nde | "
" | | avou | "
" | 1-0 | ros | 1-2 "
" 2 | | | https:// "
" | | | www "
" | | | . "
" | | | redhat "
" | | Red | .com "
" | 2-0 | Hat | /en "
);
test_table!(
alignment_doesnt_change_padding,
Matrix::new(3, 3)
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Padding::new(3, 0, 0, 0)))
.with(Modify::new(Segment::all()).with(Alignment::left())),
" N| column 0| column 1| column 2"
"----+-----------+-----------+-----------"
" 0| 0-0 | 0-1 | 0-2 "
" 1| 1-0 | 1-1 | 1-2 "
" 2| 2-0 | 2-1 | 2-2 "
);
test_table!(
alignment_global,
Matrix::new(3, 3).with(Style::psql()).with(Alignment::right()),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | 2-1 | 2-2 "
);
test_table!(
padding_by_column_name,
Matrix::new(3, 3)
.with(Style::psql())
.with(Modify::new(ByColumnName::new("column 0")).with(Padding::new(3, 3, 0, 0)))
.with(Modify::new(Segment::all()).with(Alignment::center())),
" N | column 0 | column 1 | column 2 "
"---+--------------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | 2-1 | 2-2 "
);
test_table!(
padding_by_column_name_not_first_row,
Matrix::new(3, 3)
.with(Style::psql())
.with(Modify::new(ByColumnName::new("0-2")).with(Padding::new(3, 3, 0, 0)))
.with(Modify::new(Segment::all()).with(Alignment::center())),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | 2-1 | 2-2 "
);
test_table!(
padding_by_column_name_not_existing,
Matrix::new(3, 3)
.with(Style::psql())
.with(Modify::new(ByColumnName::new("column 01123123")).with(Padding::new(3, 3, 0, 0)))
.with(Modify::new(Segment::all()).with(Alignment::center())),
" N | column 0 | column 1 | column 2 "
"---+----------+----------+----------"
" 0 | 0-0 | 0-1 | 0-2 "
" 1 | 1-0 | 1-1 | 1-2 "
" 2 | 2-0 | 2-1 | 2-2 "
);