73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package image_table
|
|
|
|
import (
|
|
"image/png"
|
|
"log"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestDrawTable(t *testing.T) {
|
|
header := []string{"Имя", "Возраст", "Город"}
|
|
|
|
rows := []any{
|
|
[]string{"Алиса", "23", "Москва"},
|
|
[]string{"Боб", "31", "Казань"},
|
|
struct {
|
|
Name string
|
|
Age int
|
|
City string
|
|
}{"Елена", 27, "Минск"},
|
|
[]string{"Олег", "44", "Сочи"},
|
|
}
|
|
|
|
img := DrawTableWarm(header, rows)
|
|
|
|
file, err := os.Create("./test-data/warm_table.png")
|
|
if err != nil {
|
|
log.Fatal("не могу создать файл:", err)
|
|
}
|
|
defer file.Close()
|
|
|
|
if err := png.Encode(file, img); err != nil {
|
|
log.Fatal("ошибка сохранения PNG:", err)
|
|
}
|
|
|
|
log.Println("Готово! Файл warm_table.png создан.")
|
|
}
|
|
|
|
func TestDocument(t *testing.T) {
|
|
doc := Document{
|
|
Blocks: []TableBlock{
|
|
{
|
|
Title: "Пользователи",
|
|
Header: []string{"ID", "Name", "Age"},
|
|
Rows: []any{
|
|
[]any{1, "Иван", 30},
|
|
[]any{2, "Пётр", 25},
|
|
},
|
|
},
|
|
{
|
|
Title: "Статистика",
|
|
Header: []string{"Метрика", "Значение"},
|
|
Rows: []any{
|
|
[]any{"Requests", 12000},
|
|
[]any{"Errors", 37},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
img := RenderDocument(doc)
|
|
|
|
file, err := os.Create("./test-data/document.png")
|
|
if err != nil {
|
|
log.Fatal("не могу создать файл:", err)
|
|
}
|
|
defer file.Close()
|
|
|
|
if err := png.Encode(file, img); err != nil {
|
|
log.Fatal("ошибка сохранения PNG:", err)
|
|
}
|
|
}
|