Search Apps Documentation Source Content File Folder Download Copy Actions Download

charts_test.gno

2.73 Kb · 81 lines
 1package charts
 2
 3import (
 4	"strings"
 5	"testing"
 6
 7	"gno.land/p/nt/uassert"
 8)
 9
10func TestGenerateLineChart_Basic(t *testing.T) {
11	values := []float64{1, 2, 3, 2, 1}
12	result := GenerateLineChart(values, 5, 6, "Test Line", "X", "Y")
13	uassert.True(t, strings.Contains(result, "Test Line"))
14	uassert.True(t, strings.Contains(result, "X"))
15	uassert.True(t, strings.Contains(result, "Y"))
16	uassert.True(t, strings.Contains(result, "*"))
17}
18
19func TestGenerateLineChart_EmptyData(t *testing.T) {
20	result := GenerateLineChart([]float64{}, 5, 6, "Title", "X", "Y")
21	uassert.Equal(t, "no data to display", result)
22}
23
24func TestGenerateLineChart_BadSpacing(t *testing.T) {
25	values := []float64{1, 2, 3}
26	result := GenerateLineChart(values, 5, 2, "Title", "X", "Y")
27	uassert.Equal(t, "pointSpacing must be at least 6 to fit value labels", result)
28}
29
30func TestGenerateLineChart_Normalization(t *testing.T) {
31	values := []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
32	result := GenerateLineChart(values, 5, 25, "Norm", "X", "Y")
33	println(result)
34	uassert.True(t, strings.Contains(result, "Norm"))
35	uassert.True(t, len(result) > 0)
36}
37
38func TestGenerateBarChart_Basic(t *testing.T) {
39	values := []float64{3, 5, 2}
40	labels := []string{"A", "B", "C"}
41	result := GenerateBarChart(values, labels, 10, "Bar Test")
42	uassert.True(t, strings.Contains(result, "Bar Test"))
43	uassert.True(t, strings.Contains(result, "A"))
44	uassert.True(t, strings.Contains(result, "B"))
45	uassert.True(t, strings.Contains(result, "C"))
46	uassert.True(t, strings.Contains(result, "█"))
47}
48
49func TestGenerateBarChart_InvalidData(t *testing.T) {
50	result := GenerateBarChart([]float64{}, []string{}, 10, "Title")
51	uassert.Equal(t, "invalid data for display", result)
52	result2 := GenerateBarChart([]float64{1, 2}, []string{"A"}, 10, "Title")
53	uassert.Equal(t, "invalid data for display", result2)
54}
55
56func TestGenerateBarChart_Widths(t *testing.T) {
57	values := []float64{1, 2}
58	labels := []string{"A", "B"}
59	result := GenerateBarChart(values, labels, 5, "Widths")
60	uassert.True(t, strings.Contains(result, "Widths"))
61}
62
63func TestGenerateColumnChart_Basic(t *testing.T) {
64	values := []float64{2, 4, 3}
65	result := GenerateColumnChart(values, 3, "Col Test", "X", "Y")
66	uassert.True(t, strings.Contains(result, "Col Test"))
67	uassert.True(t, strings.Contains(result, "X"))
68	uassert.True(t, strings.Contains(result, "Y"))
69	uassert.True(t, strings.Contains(result, "|||||"))
70}
71
72func TestGenerateColumnChart_EmptyData(t *testing.T) {
73	result := GenerateColumnChart([]float64{}, 3, "Title", "X", "Y")
74	uassert.Equal(t, "no data to display", result)
75}
76
77func TestGenerateColumnChart_Normalization(t *testing.T) {
78	values := []float64{1, 2, 3, 4, 5, 6}
79	result := GenerateColumnChart(values, 3, "Norm", "X", "Y")
80	uassert.True(t, strings.Contains(result, "Norm"))
81}