Files
image_table/image_table_test.go
2025-12-28 19:02:00 +03:00

80 lines
1.7 KiB
Go

package image_table
import (
"image/color"
"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},
&TableBlockStyle{
Cells: []any{2, "Пётр", 25},
BackgroundColor: color.RGBA{R: 225, G: 255, B: 225, A: 255},
},
},
},
{
Title: "Статистика",
Header: []string{"Метрика", "Значение"},
Rows: []any{
[]any{"Requests", 12000},
&TableBlockStyle{
Cells: []any{"Errors", 37},
BackgroundColor: color.RGBA{R: 255, G: 225, B: 225, A: 255},
},
},
},
},
}
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)
}
}