use tabled::{
object::{Rows, Segment},
Alignment, Modify, Padding, Style,
};
use crate::util::{create_table, test_table};
mod util;
test_table!(
padding,
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Alignment::left()))
.with(Modify::new(Rows::new(1..)).with(Padding::new(1, 1, 0, 2))),
" 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_with_set_characters,
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Padding::new(1, 2, 1, 1).set_fill('>', '<', 'V', '^'))),
"VVVV|VVVVVVVVVVV|VVVVVVVVVVV|VVVVVVVVVVV"
">N<<|>column 0<<|>column 1<<|>column 2<<"
"^^^^|^^^^^^^^^^^|^^^^^^^^^^^|^^^^^^^^^^^"
"----+-----------+-----------+-----------"
"VVVV|VVVVVVVVVVV|VVVVVVVVVVV|VVVVVVVVVVV"
">0<<|> 0-0 <<|> 0-1 <<|> 0-2 <<"
"^^^^|^^^^^^^^^^^|^^^^^^^^^^^|^^^^^^^^^^^"
"VVVV|VVVVVVVVVVV|VVVVVVVVVVV|VVVVVVVVVVV"
">1<<|> 1-0 <<|> 1-1 <<|> 1-2 <<"
"^^^^|^^^^^^^^^^^|^^^^^^^^^^^|^^^^^^^^^^^"
"VVVV|VVVVVVVVVVV|VVVVVVVVVVV|VVVVVVVVVVV"
">2<<|> 2-0 <<|> 2-1 <<|> 2-2 <<"
"^^^^|^^^^^^^^^^^|^^^^^^^^^^^|^^^^^^^^^^^"
);
test_table!(
padding_with_set_characters_and_zero_ident,
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Padding::zero().set_fill('>', '<', '^', 'V'))),
"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_multiline,
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Rows::new(1..)).with(Padding::new(1, 1, 1, 1))),
" 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_multiline_with_vertical_alignment,
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Segment::all()).with(Alignment::center()).with(Alignment::center_vertical()))
.with(Modify::new(Rows::new(1..)).with(Padding::new(1, 1, 1, 1))),
" 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 "
" | | | "
);
#[cfg(feature = "color")]
test_table!(
padding_color,
{
use std::convert::TryFrom;
use owo_colors::OwoColorize;
use tabled::{padding_color::PaddingColor, color::Color};
let padding_color = PaddingColor::new(
Color::try_from(' '.on_red().to_string()).unwrap(),
Color::try_from(' '.on_green().to_string()).unwrap(),
Color::try_from(' '.on_yellow().to_string()).unwrap(),
Color::try_from(' '.on_blue().to_string()).unwrap()
);
create_table::<3, 3>()
.with(Style::psql())
.with(Modify::new(Rows::new(1..)).with(Padding::new(2, 2, 2, 2)).with(padding_color))
},
" N | column 0 | column 1 | column 2 \n-----+----------+----------+----------\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[43m \u{1b}[49m0\u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 0-0 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 0-1 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 0-2 \u{1b}[44m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[43m \u{1b}[49m1\u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 1-0 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 1-1 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 1-2 \u{1b}[44m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m|\u{1b}[41m \u{1b}[49m\n\u{1b}[43m \u{1b}[49m2\u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 2-0 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 2-1 \u{1b}[44m \u{1b}[49m|\u{1b}[43m \u{1b}[49m 2-2 \u{1b}[44m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m\n\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m|\u{1b}[42m \u{1b}[49m"
);
test_table!(
padding_table,
create_table::<3, 3>()
.with(Style::psql())
.with(Padding::new(1, 1, 0, 2)),
" 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 "
" | | | "
" | | | "
);