1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
|
package gotabulate
import "testing"
import "io/ioutil"
import "github.com/stretchr/testify/assert"
var HEADERS = []string{"Header 1", "Header 2", "Header 3", "Header 4", "Header 5"}
var INT_ARRAY = []int{1, 2, 3, 1000, 200}
var INT64_ARRAY = []int64{100, 500, 600, 1000, 10000}
var FLOAT_ARRAY = []float64{10.01, 12.002, -123.5, 20.00005, 1.01}
var STRING_ARRAY = []string{"test string", "test string 2", "test", "row", "bndr"}
var MIXED_ARRAY = []interface{}{"string", 1, 1.005, "another string", -2}
var EMPTY_ARRAY = []string{"4th element empty", "4th element empty", "4th element empty"}
var MIXED_MAP = map[string][]interface{}{"header1": MIXED_ARRAY, "header2": MIXED_ARRAY}
// Test Setters
func TestSetFormat(t *testing.T) {
tabulate := Create([][]float64{FLOAT_ARRAY, FLOAT_ARRAY, FLOAT_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetFloatFormat('f')
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/table_float"))
}
// Test Align Left, Align Right, Align Center
func TestPads(t *testing.T) {
tabulate := Create([][]float64{FLOAT_ARRAY, FLOAT_ARRAY, FLOAT_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetAlign("left")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/table_float_right_pad"))
tabulate.SetAlign("right")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/table_float"))
tabulate.SetAlign("center")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/table_float_center_pad"))
}
func TestSetHeaders(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY})
tabulate.SetHeaders(HEADERS)
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/test_headers"))
}
func TestHeadersFirstRow(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, STRING_ARRAY})
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/test_first_row"))
}
func TestEmptyString(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, EMPTY_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/test_empty_element"))
}
func TestMaxColWidth(t *testing.T) {
// TODO
}
// Test Simple
func TestSimpleFloats(t *testing.T) {
tabulate := Create([][]float64{FLOAT_ARRAY, FLOAT_ARRAY, FLOAT_ARRAY[:len(FLOAT_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_floats"))
}
func TestSimpleInts(t *testing.T) {
tabulate := Create([][]int{INT_ARRAY, INT_ARRAY, INT_ARRAY[:len(INT_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_ints"))
}
func TestSimpleInts64(t *testing.T) {
tabulate := Create([][]int64{INT64_ARRAY, INT64_ARRAY, INT64_ARRAY[:len(INT64_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_ints64"))
}
func TestSimpleString(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, STRING_ARRAY, EMPTY_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_strings"))
}
func TestSimpleMixed(t *testing.T) {
tabulate := Create([][]interface{}{MIXED_ARRAY, MIXED_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_mixed"))
}
func TestSimpleMapMixed(t *testing.T) {
tabulate := Create(MIXED_MAP)
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/simple_map_mixed"))
}
// Test Grid
func TestGridFloats(t *testing.T) {
tabulate := Create([][]float64{FLOAT_ARRAY, FLOAT_ARRAY, FLOAT_ARRAY[:len(FLOAT_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_floats"))
}
func TestGridInts(t *testing.T) {
tabulate := Create([][]int{INT_ARRAY, INT_ARRAY, INT_ARRAY[:len(INT_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_ints"))
}
func TestGridInts64(t *testing.T) {
tabulate := Create([][]int64{INT64_ARRAY, INT64_ARRAY, INT64_ARRAY[:len(INT64_ARRAY)-1]})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_ints64"))
}
func TestGridString(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, STRING_ARRAY, EMPTY_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_strings"))
}
func TestGridMixed(t *testing.T) {
tabulate := Create([][]interface{}{MIXED_ARRAY, MIXED_ARRAY})
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_mixed"))
}
func TestGridMapMixed(t *testing.T) {
tabulate := Create(MIXED_MAP)
tabulate.SetHeaders(HEADERS)
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/grid_map_mixed"))
}
func TestPaddedHeader(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, STRING_ARRAY, EMPTY_ARRAY})
tabulate.SetHeaders([]string{"Header 1", "header 2", "header 3", "header 4"})
tabulate.SetEmptyString("None")
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/test_padded_headers"))
}
func TestHideLineBelowHeader(t *testing.T) {
tabulate := Create([][]string{STRING_ARRAY, STRING_ARRAY, EMPTY_ARRAY})
tabulate.SetHeaders([]string{"Header 1", "header 2", "header 3", "header 4"})
tabulate.SetHideLines([]string{"belowheader"})
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/test_hide_lines"))
}
func TestWrapCells(t *testing.T) {
tabulate := Create([][]string{[]string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, STRING_ARRAY, []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, STRING_ARRAY})
tabulate.SetHeaders([]string{"Header 1", "header 2", "header 3", "header 4"})
tabulate.SetMaxCellSize(16)
tabulate.SetWrapStrings(true)
assert.Equal(t, tabulate.Render("grid"), readTable("_tests/test_string_wrap_grid"))
}
func TestWrapCellsSimple(t *testing.T) {
tabulate := Create([][]string{[]string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, STRING_ARRAY, []string{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis",
"Vivamus laoreet vestibulum pretium. Nulla et ornare elit. Cum sociis natoque penatibus et magnis", "zzLorem ipsum", " test", "test"}, STRING_ARRAY})
tabulate.SetHeaders([]string{"Header 1", "header 2", "header 3", "header 4"})
tabulate.SetMaxCellSize(16)
tabulate.SetWrapStrings(true)
assert.Equal(t, tabulate.Render("simple"), readTable("_tests/test_string_wrap_simple"))
}
func readTable(path string) string {
buf, err := ioutil.ReadFile(path)
if err != nil {
panic(err)
}
return string(buf)
}
|