| #![cfg(feature = "macros")] |
| #![cfg(feature = "std")] |
| |
| use tabled::{ |
| col, row, |
| settings::{format::Format, object::Segment, Alignment, Modify, Padding}, |
| }; |
| |
| use crate::matrix::Matrix; |
| use testing_table::test_table; |
| |
| test_table!( |
| row_pair_test, |
| row!( |
| Matrix::new(3, 3) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(3, 1, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| Matrix::new(4, 4) |
| .with(Modify::new(Segment::all()).with(Alignment::right())) |
| .with(Modify::new(Segment::all()).with(Padding::new(1, 1, 1, 1))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("({s})")))), |
| ), |
| "+--------------------------------------------------------+-------------------------------------------------------------+" |
| "| +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ |" |
| "| | [N] | [column 0] | [column 1] | [column 2] | | | | | | | | |" |
| "| +-------+--------------+--------------+--------------+ | | (N) | (column 0) | (column 1) | (column 2) | (column 3) | |" |
| "| | [0] | [0-0] | [0-1] | [0-2] | | | | | | | | |" |
| "| +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ |" |
| "| | [1] | [1-0] | [1-1] | [1-2] | | | | | | | | |" |
| "| +-------+--------------+--------------+--------------+ | | (0) | (0-0) | (0-1) | (0-2) | (0-3) | |" |
| "| | [2] | [2-0] | [2-1] | [2-2] | | | | | | | | |" |
| "| +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | | |" |
| "| | | (1) | (1-0) | (1-1) | (1-2) | (1-3) | |" |
| "| | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | | |" |
| "| | | (2) | (2-0) | (2-1) | (2-2) | (2-3) | |" |
| "| | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | | |" |
| "| | | (3) | (3-0) | (3-1) | (3-2) | (3-3) | |" |
| "| | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ |" |
| "+--------------------------------------------------------+-------------------------------------------------------------+" |
| ); |
| |
| test_table!( |
| col_pair_test, |
| col!( |
| Matrix::new(3, 3) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(3, 1, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| Matrix::new(4, 4) |
| .with(Modify::new(Segment::all()).with(Alignment::right())) |
| .with(Modify::new(Segment::all()).with(Padding::new(1, 1, 1, 1))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("({s})")))), |
| ), |
| "+-------------------------------------------------------------+" |
| "| +-------+--------------+--------------+--------------+ |" |
| "| | [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] | |" |
| "| +-------+--------------+--------------+--------------+ |" |
| "+-------------------------------------------------------------+" |
| "| +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | |" |
| "| | (N) | (column 0) | (column 1) | (column 2) | (column 3) | |" |
| "| | | | | | | |" |
| "| +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | |" |
| "| | (0) | (0-0) | (0-1) | (0-2) | (0-3) | |" |
| "| | | | | | | |" |
| "| +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | |" |
| "| | (1) | (1-0) | (1-1) | (1-2) | (1-3) | |" |
| "| | | | | | | |" |
| "| +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | |" |
| "| | (2) | (2-0) | (2-1) | (2-2) | (2-3) | |" |
| "| | | | | | | |" |
| "| +-----+------------+------------+------------+------------+ |" |
| "| | | | | | | |" |
| "| | (3) | (3-0) | (3-1) | (3-2) | (3-3) | |" |
| "| | | | | | | |" |
| "| +-----+------------+------------+------------+------------+ |" |
| "+-------------------------------------------------------------+" |
| ); |
| |
| test_table!( |
| row_duplication_test, |
| row!( |
| Matrix::new(3, 3) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(3, 1, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))); |
| 3 |
| ), |
| "+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+" |
| "| +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ |" |
| "| | [N] | [column 0] | [column 1] | [column 2] | | | [N] | [column 0] | [column 1] | [column 2] | | | [N] | [column 0] | [column 1] | [column 2] | |" |
| "| +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ |" |
| "| | [0] | [0-0] | [0-1] | [0-2] | | | [0] | [0-0] | [0-1] | [0-2] | | | [0] | [0-0] | [0-1] | [0-2] | |" |
| "| +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ |" |
| "| | [1] | [1-0] | [1-1] | [1-2] | | | [1] | [1-0] | [1-1] | [1-2] | | | [1] | [1-0] | [1-1] | [1-2] | |" |
| "| +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ |" |
| "| | [2] | [2-0] | [2-1] | [2-2] | | | [2] | [2-0] | [2-1] | [2-2] | | | [2] | [2-0] | [2-1] | [2-2] | |" |
| "| +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ | +-------+--------------+--------------+--------------+ |" |
| "+--------------------------------------------------------+--------------------------------------------------------+--------------------------------------------------------+" |
| ); |
| |
| test_table!( |
| col_and_rows_test, |
| col!( |
| row!( |
| Matrix::new(3, 3) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(3, 1, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| Matrix::new(4, 4) |
| .with(Modify::new(Segment::all()).with(Alignment::right())) |
| .with(Modify::new(Segment::all()).with(Padding::new(1, 1, 1, 1))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("({s})")))), |
| ), |
| Matrix::new(3, 5) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(2, 2, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| ), |
| "+--------------------------------------------------------------------------------------------------------------------------+" |
| "| +--------------------------------------------------------+-------------------------------------------------------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ | |" |
| "| | | [N] | [column 0] | [column 1] | [column 2] | | | | | | | | | |" |
| "| | +-------+--------------+--------------+--------------+ | | (N) | (column 0) | (column 1) | (column 2) | (column 3) | | |" |
| "| | | [0] | [0-0] | [0-1] | [0-2] | | | | | | | | | |" |
| "| | +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ | |" |
| "| | | [1] | [1-0] | [1-1] | [1-2] | | | | | | | | | |" |
| "| | +-------+--------------+--------------+--------------+ | | (0) | (0-0) | (0-1) | (0-2) | (0-3) | | |" |
| "| | | [2] | [2-0] | [2-1] | [2-2] | | | | | | | | | |" |
| "| | +-------+--------------+--------------+--------------+ | +-----+------------+------------+------------+------------+ | |" |
| "| | | | | | | | | | |" |
| "| | | | (1) | (1-0) | (1-1) | (1-2) | (1-3) | | |" |
| "| | | | | | | | | | |" |
| "| | | +-----+------------+------------+------------+------------+ | |" |
| "| | | | | | | | | | |" |
| "| | | | (2) | (2-0) | (2-1) | (2-2) | (2-3) | | |" |
| "| | | | | | | | | | |" |
| "| | | +-----+------------+------------+------------+------------+ | |" |
| "| | | | | | | | | | |" |
| "| | | | (3) | (3-0) | (3-1) | (3-2) | (3-3) | | |" |
| "| | | | | | | | | | |" |
| "| | | +-----+------------+------------+------------+------------+ | |" |
| "| +--------------------------------------------------------+-------------------------------------------------------------+ |" |
| "+--------------------------------------------------------------------------------------------------------------------------+" |
| "| +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | [N] | [column 0] | [column 1] | [column 2] | [column 3] | [column 4] | |" |
| "| +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | [0] | [0-0] | [0-1] | [0-2] | [0-3] | [0-4] | |" |
| "| +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | [1] | [1-0] | [1-1] | [1-2] | [1-3] | [1-4] | |" |
| "| +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | [2] | [2-0] | [2-1] | [2-2] | [2-3] | [2-4] | |" |
| "| +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "+--------------------------------------------------------------------------------------------------------------------------+" |
| ); |
| |
| test_table!( |
| row_and_col_test, |
| row!( |
| col!( |
| Matrix::new(3, 3) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(3, 1, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| Matrix::new(4, 4) |
| .with(Modify::new(Segment::all()).with(Alignment::right())) |
| .with(Modify::new(Segment::all()).with(Padding::new(1, 1, 1, 1))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("({s})")))), |
| ), |
| Matrix::new(3, 5) |
| .with(Modify::new(Segment::all()).with(Alignment::left())) |
| .with(Modify::new(Segment::all()).with(Padding::new(2, 2, 0, 0))) |
| .with(Modify::new(Segment::all()).with(Format::content(|s| format!("[{s}]")))), |
| ), |
| "+-----------------------------------------------------------------+--------------------------------------------------------------------------------------+" |
| "| +-------------------------------------------------------------+ | +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | | | [N] | [column 0] | [column 1] | [column 2] | [column 3] | [column 4] | |" |
| "| | | [N] | [column 0] | [column 1] | [column 2] | | | +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | | | [0] | [0-0] | [0-1] | [0-2] | [0-3] | [0-4] | |" |
| "| | | [0] | [0-0] | [0-1] | [0-2] | | | +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | | | [1] | [1-0] | [1-1] | [1-2] | [1-3] | [1-4] | |" |
| "| | | [1] | [1-0] | [1-1] | [1-2] | | | +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | | | [2] | [2-0] | [2-1] | [2-2] | [2-3] | [2-4] | |" |
| "| | | [2] | [2-0] | [2-1] | [2-2] | | | +-------+--------------+--------------+--------------+--------------+--------------+ |" |
| "| | +-------+--------------+--------------+--------------+ | | |" |
| "| +-------------------------------------------------------------+ | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| | | | | | | | | | |" |
| "| | | (N) | (column 0) | (column 1) | (column 2) | (column 3) | | | |" |
| "| | | | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| | | | | | | | | | |" |
| "| | | (0) | (0-0) | (0-1) | (0-2) | (0-3) | | | |" |
| "| | | | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| | | | | | | | | | |" |
| "| | | (1) | (1-0) | (1-1) | (1-2) | (1-3) | | | |" |
| "| | | | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| | | | | | | | | | |" |
| "| | | (2) | (2-0) | (2-1) | (2-2) | (2-3) | | | |" |
| "| | | | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| | | | | | | | | | |" |
| "| | | (3) | (3-0) | (3-1) | (3-2) | (3-3) | | | |" |
| "| | | | | | | | | | |" |
| "| | +-----+------------+------------+------------+------------+ | | |" |
| "| +-------------------------------------------------------------+ | |" |
| "+-----------------------------------------------------------------+--------------------------------------------------------------------------------------+" |
| ); |
| |
| test_table!( |
| row_str_test, |
| row!("hello", "world"), |
| "+-------+-------+" |
| "| hello | world |" |
| "+-------+-------+" |
| ); |
| |
| test_table!( |
| row_str_duplication_test, |
| row!("duplicate me"; 5), |
| "+--------------+--------------+--------------+--------------+--------------+" |
| "| duplicate me | duplicate me | duplicate me | duplicate me | duplicate me |" |
| "+--------------+--------------+--------------+--------------+--------------+" |
| ); |
| |
| test_table!( |
| row_display_mixed_test, |
| row!("str", "string".to_string(), 55, false), |
| "+-----+--------+----+-------+" |
| "| str | string | 55 | false |" |
| "+-----+--------+----+-------+" |
| ); |
| |
| test_table!( |
| col_display_mixed_test, |
| col!("str", "string".to_string(), 55, false), |
| "+--------+" |
| "| str |" |
| "+--------+" |
| "| string |" |
| "+--------+" |
| "| 55 |" |
| "+--------+" |
| "| false |" |
| "+--------+" |
| ); |