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}