#![cfg(feature = "std")] use tabled::settings::{ object::{Columns, Segment}, Alignment, Format, Height, Modify, Style, }; use crate::matrix::Matrix; use testing_table::test_table; #[cfg(feature = "ansi")] use owo_colors::OwoColorize; test_table!( cell_height_increase, Matrix::new(3, 3) .with(Style::markdown()) .with( Modify::new(Columns::first()) .with(Height::increase(3)) ) .with(Modify::new(Segment::all()).with( Alignment::center_vertical() )), "| 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!( table_height_increase, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Alignment::center_vertical())) .with(Height::increase(10)), "| | column 0 | column 1 | column 2 |" "| N | | | |" "| | | | |" "|---|----------|----------|----------|" "| 0 | 0-0 | 0-1 | 0-2 |" "| | | | |" "| 1 | 1-0 | 1-1 | 1-2 |" "| | | | |" "| 2 | 2-0 | 2-1 | 2-2 |" "| | | | |" ); test_table!( cell_height_increase_zero, Matrix::new(3, 3) .with(Style::markdown()) .with( Modify::new(Columns::first()) .with(Height::increase(0)) ) .with(Modify::new(Segment::all()).with( Alignment::center_vertical() )), "| 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!( table_height_increase_zero, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Alignment::center_vertical())) .with(Height::increase(0)), "| 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!( cell_height_limit, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n")))) .with( Modify::new(Columns::first()) .with(Height::limit(1)) ) .with(Modify::new(Segment::all()).with( Alignment::center_vertical() )), "| xxxx | column 0 | column 1 | column 2 |" "|------|----------|----------|----------|" "| xxxx | 0-0 | 0-1 | 0-2 |" "| xxxx | 1-0 | 1-1 | 1-2 |" "| xxxx | 2-0 | 2-1 | 2-2 |" ); test_table!( table_height_limit, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n")))) .with(Modify::new(Columns::first()).with(Alignment::center_vertical())) .with(Height::limit(10)), "| xxxx | column 0 | column 1 | column 2 |" "| Nxxxx | | | |" "|-------|----------|----------|----------|" "| xxxx | 0-0 | 0-1 | 0-2 |" "| 0xxxx | | | |" "| xxxx | 1-0 | 1-1 | 1-2 |" "| 1xxxx | | | |" "| xxxx | 2-0 | 2-1 | 2-2 |" "| 2xxxx | | | |" "| xxxx | | | |" ); test_table!( table_height_limit_style_change_after, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n")))) .with(Modify::new(Columns::first()).with(Alignment::center_vertical())) .with(Height::limit(7)), "| xxxx | column 0 | column 1 | column 2 |" "|-------|----------|----------|----------|" "| xxxx | 0-0 | 0-1 | 0-2 |" "| xxxx | 1-0 | 1-1 | 1-2 |" "| 1xxxx | | | |" "| xxxx | 2-0 | 2-1 | 2-2 |" "| 2xxxx | | | |" ); test_table!( cell_height_limit_zero, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n")))) .with( Modify::new(Columns::first()) .with(Height::limit(0)) ) .with(Modify::new(Segment::all()).with( Alignment::center_vertical() )), "| | column 0 | column 1 | column 2 |" "|--|----------|----------|----------|" "| | 0-0 | 0-1 | 0-2 |" "| | 1-0 | 1-1 | 1-2 |" "| | 2-0 | 2-1 | 2-2 |" ); test_table!( table_height_limit_zero, Matrix::new(3, 3) .with(Style::markdown()) .with( Modify::new(Columns::new(..)) .with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n"))) ) .with(Height::limit(0)), "|--|--|--|--|" ); test_table!( table_height_limit_zero_1, Matrix::new(3, 3) .with(Style::markdown()) .with(Height::limit(0)) .with( Modify::new(Columns::new(..)).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n"))) ), "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| | | | |" "|------|------|------|------|" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| | | | |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| | | | |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| xxxx | xxxx | xxxx | xxxx |" "| | | | |" ); #[cfg(feature = "ansi")] test_table!( cell_height_limit_colored, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n").red().to_string()))) .with( Modify::new(Columns::first()) .with(Height::limit(1)) ) .with(Modify::new(Segment::all()).with( Alignment::center_vertical() )), "| \u{1b}[31mxxxx\u{1b}[39m | column 0 | column 1 | column 2 |" "|------|----------|----------|----------|" "| \u{1b}[31mxxxx\u{1b}[39m | 0-0 | 0-1 | 0-2 |" "| \u{1b}[31mxxxx\u{1b}[39m | 1-0 | 1-1 | 1-2 |" "| \u{1b}[31mxxxx\u{1b}[39m | 2-0 | 2-1 | 2-2 |" ); #[cfg(feature = "ansi")] test_table!( table_height_limit_colored, Matrix::new(3, 3) .with(Style::markdown()) .with(Modify::new(Columns::first()).with(Format::content(|s| format!("xxxx\n{s}xxxx\nxxxx\n").blue().on_green().to_string()))) .with(Modify::new(Columns::first()).with(Alignment::center_vertical())) .with(Height::limit(10)), "| \u{1b}[34;42mxxxx\u{1b}[39m\u{1b}[49m | column 0 | column 1 | column 2 |" "| \u{1b}[34m\u{1b}[42mNxxxx\u{1b}[39m\u{1b}[49m | | | |" "|-------|----------|----------|----------|" "| \u{1b}[34;42mxxxx\u{1b}[39m\u{1b}[49m | 0-0 | 0-1 | 0-2 |" "| \u{1b}[34m\u{1b}[42m0xxxx\u{1b}[39m\u{1b}[49m | | | |" "| \u{1b}[34;42mxxxx\u{1b}[39m\u{1b}[49m | 1-0 | 1-1 | 1-2 |" "| \u{1b}[34m\u{1b}[42m1xxxx\u{1b}[39m\u{1b}[49m | | | |" "| \u{1b}[34;42mxxxx\u{1b}[39m\u{1b}[49m | 2-0 | 2-1 | 2-2 |" "| \u{1b}[34m\u{1b}[42m2xxxx\u{1b}[39m\u{1b}[49m | | | |" "| \u{1b}[34m\u{1b}[42mxxxx\u{1b}[39m\u{1b}[49m | | | |" ); #[cfg(feature = "macros")] test_table!( cell_height_1x1, tabled::row![tabled::col!["SGML"].with(Height::increase(4))], "+----------+" "| +------+ |" "| | SGML | |" "| | | |" "| +------+ |" "+----------+" ); #[cfg(feature = "macros")] test_table!( cell_height_1x1_no_top_border, tabled::row![tabled::col!["SGML"].with(Style::ascii().remove_top()).with(Height::increase(4))], "+----------+" "| | SGML | |" "| | | |" "| | | |" "| +------+ |" "+----------+" );