diff --git a/table/render_paged_test.go b/table/render_paged_test.go index e589b8c..2abc7f8 100644 --- a/table/render_paged_test.go +++ b/table/render_paged_test.go @@ -146,21 +146,8 @@ func TestTable_Render_PagedAndSeparated(t *testing.T) { } func TestTable_Render_PagedAndMergedAndSeparated(t *testing.T) { - rowConfig := RowConfig{AutoMerge: true, AutoMergeAlign: text.AlignLeft} - - tw := NewWriter() - tw.AppendHeader(testTitanicHeader) - for _, row := range testTitanicRows[0:9] { - tw.AppendRow(row, rowConfig) - tw.AppendSeparator() - } - tw.SetColumnConfigs([]ColumnConfig{ - {Number: 2, AutoMerge: true}, - }) - - t.Run("page size 0", func(t *testing.T) { - tw.SetPageSize(0) - compareOutput(t, tw.Render(), ` + pageSizeToOutputMap := map[int]string{ + 0: ` +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ @@ -181,46 +168,8 @@ func TestTable_Render_PagedAndMergedAndSeparated(t *testing.T) { | 8 | | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | | S | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) - }) - - t.Run("page size 3", func(t *testing.T) { - tw.SetPageSize(3) - compareOutput(t, tw.Render(), ` -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.25 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 2 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C | -+-------------+ +--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 3 | | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | STON/O2. 3101282 | 7.925 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 4 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1 | C123 | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 373450 | 8.05 | | S | -+-------------+ +--------+-----------------------------------------------------+--------+-----+---------------+------------------+---------+-------+----------+ -| 6 | | 3 | Moran, Mr. James | male | | 0 | 330877 | 8.4583 | | Q | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 7 | 0 | 1 | McCarthy, Mr. Timothy J | male | 54 | 0 | 17463 | 51.8625 | E46 | S | -+-------------+ +--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 8 | | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) - }) - - t.Run("page size 1", func(t *testing.T) { - tw.SetPageSize(1) - compareOutput(t, tw.Render(), ` ++-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`, + 1: ` +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ @@ -273,50 +222,8 @@ func TestTable_Render_PagedAndMergedAndSeparated(t *testing.T) { | PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) - }) -} - -func TestTable_Render_PagedAndMergedAndSeparatedUsingStyle(t *testing.T) { - rowConfig := RowConfig{AutoMerge: true, AutoMergeAlign: text.AlignLeft} - - tw := NewWriter() - tw.AppendHeader(testTitanicHeader) - tw.AppendRows(testTitanicRows[0:9], rowConfig) - tw.SetColumnConfigs([]ColumnConfig{ - {Number: 2, AutoMerge: true}, - }) - tw.Style().Options.SeparateRows = true - - t.Run("page size 0", func(t *testing.T) { - tw.SetPageSize(0) - compareOutput(t, tw.Render(), ` -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.25 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 2 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C | -+-------------+ +--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 3 | | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | STON/O2. 3101282 | 7.925 | | S | -+-------------+ +--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 4 | | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1 | C123 | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 373450 | 8.05 | | S | -+-------------+ +--------+-----------------------------------------------------+--------+-----+---------------+------------------+---------+-------+----------+ -| 6 | | 3 | Moran, Mr. James | male | | 0 | 330877 | 8.4583 | | Q | -+-------------+ +--------+-----------------------------------------------------+--------+-----+---------------+------------------+---------+-------+----------+ -| 7 | | 1 | McCarthy, Mr. Timothy J | male | 54 | 0 | 17463 | 51.8625 | E46 | S | -+-------------+ +--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 8 | | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) - }) - - t.Run("page size 3", func(t *testing.T) { - tw.SetPageSize(3) - compareOutput(t, tw.Render(), ` ++-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`, + 3: ` +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ @@ -345,64 +252,42 @@ func TestTable_Render_PagedAndMergedAndSeparatedUsingStyle(t *testing.T) { | 8 | | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | | S | +-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ | 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) - }) - - t.Run("page size 1", func(t *testing.T) { - tw.SetPageSize(1) - compareOutput(t, tw.Render(), ` -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.25 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 2 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | STON/O2. 3101282 | 7.925 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 4 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1 | C123 | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 373450 | 8.05 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ - -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 6 | 0 | 3 | Moran, Mr. James | male | | 0 | 330877 | 8.4583 | | Q | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ ++-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`, + } -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 7 | 0 | 1 | McCarthy, Mr. Timothy J | male | 54 | 0 | 17463 | 51.8625 | E46 | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ + rowConfig := RowConfig{AutoMerge: true, AutoMergeAlign: text.AlignLeft} -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 8 | 0 | 3 | Palsson, Master. Gosta Leonard | male | 2 | 3 | 1 | 349909 | 21.075 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ + t.Run("separators appended manually", func(t *testing.T) { + tw := NewWriter() + tw.AppendHeader(testTitanicHeader) + for _, row := range testTitanicRows[0:9] { + tw.AppendRow(row, rowConfig) + tw.AppendSeparator() + } + tw.SetColumnConfigs([]ColumnConfig{ + {Number: 2, AutoMerge: true}, + }) + + for pageSize, expectedOutput := range pageSizeToOutputMap { + tw.SetPageSize(pageSize) + compareOutput(t, tw.Render(), expectedOutput) + } + }) -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| PASSENGERID | SURVIVED | PCLASS | NAME | SEX | AGE | SIBSP | PARCH | TICKET | FARE | CABIN | EMBARKED | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+ -| 9 | 1 | 3 | Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) | female | 27 | 0 | 2 | 347742 | 11.1333 | | S | -+-------------+----------+--------+-----------------------------------------------------+--------+-----+-------+-------+------------------+---------+-------+----------+`) + t.Run("separators from style", func(t *testing.T) { + tw := NewWriter() + tw.AppendHeader(testTitanicHeader) + for _, row := range testTitanicRows[0:9] { + tw.AppendRow(row, rowConfig) + } + tw.SetColumnConfigs([]ColumnConfig{ + {Number: 2, AutoMerge: true}, + }) + tw.Style().Options.SeparateRows = true + + for pageSize, expectedOutput := range pageSizeToOutputMap { + tw.SetPageSize(pageSize) + compareOutput(t, tw.Render(), expectedOutput) + } }) }