add grid color and dot size parameters
[dygraphs.git] / plotkit_v091 / tests / basic.js
CommitLineData
6a1aa64f
DV
1/* actual tests */
2
3var opts = {
4 "IECanvasHTC": "../plotkit/iecanvas.htc",
5 "enableEvents": true,
6 "strokeColor": null
7};
8
9function alert_val(e) {
10 alert("x:" + e.chart.xval + "y:" + e.chart.yval);
11}
12
13function genericTest(num, plotStyle) {
14 var l = new PlotKit.Layout(plotStyle, {});
15 var success = l.addDatasetFromTable("data" + num, $("test" + num));
16 l.evaluate();
17 var c = $("test" + num + "canvas");
18 var g = new PlotKit.CanvasRenderer(c, l, opts);
19 g.render();
20
21 // test events
22 MochiKit.Signal.connect(g, "onclick", alert_val);
23}
24
25function genericTestAndClear(num, plotStyle) {
26 var l = new PlotKit.Layout(plotStyle, {});
27 l.addDatasetFromTable("data" + num, $("test" + num));
28 l.evaluate();
29 var c = $("test" + num + "canvas");
30 var g = new PlotKit.CanvasRenderer(c, l, opts);
31 g.render();
32 g.clear();
33}
34
35function dualDataSet(num, plotStyle) {
36 var l = new PlotKit.Layout(plotStyle, {});
37 l.addDatasetFromTable("data1." + num, $("test" + num), 0, 1);
38 l.addDatasetFromTable("data2." + num, $("test" + num), 0, 2);
39 l.evaluate();
40 var c = $("test" + num + "canvas");
41 var g = new PlotKit.CanvasRenderer(c, l, opts);
42 g.render();
43}
44
45
46/* create HTML for tests */
47
48function makeTableRow(list) {
49 return TR({}, map(partial(TD, null), list));
50}
51
52function generateTestTable(num, data) {
53 var tableid = "test" + num;
54 var tablehead = THEAD(null, map(makeTableRow, [["x", "y"]]));
55 var tablebody = TBODY(null, map(makeTableRow, data));
56
57 var table = TABLE({"class": "data", "id": tableid}, [tablehead, tablebody]);
58 return table;
59}
60
61function generateCanvas(num) {
62 var canvasid = "test" + num + "canvas";
63 var canvas = CANVAS({"id":canvasid, "width": "400", "height": "200"}, "");
64 return canvas
65}
66
67function generateUnitTest(num, func, data, type, desc) {
68 var table = DIV({"class": "data"}, generateTestTable(num, data));
69 var canvas = DIV({"class": "canvas"}, generateCanvas(num));
70 var ending = DIV({"class":"ending"}, desc);
71
72 addLoadEvent(partial(func, num, type));
73
74 return DIV({"class": "unit"}, [table, canvas, ending]);
75}
76
77function generateTests() {
78 var tests = $('tests');
79
80 // datasets
81 var simpleData1 = [[0, 0], [1, 1], [2, 2], [3, 3]];
82 var simpleData2 = [[1, 2], [2, 3], [3, 4], [4, 5]];
83 var singleData = [[1, 1]];
84
85 var ninety = [[1, 9], [2, 1]];
86
87 var floatData1 = [[0, 0.5], [1, 0.4], [2, 0.3]];
88 var missingData = [[0, 1], [1, 4], [3, 16], [5, 17]];
89
90 var dualData = [[0,0,0], [1,2,1], [2,4,4], [3,8,9], [4,16,16], [5,32,25], [6, 64, 36], [7, 128, 49]];
91
92 tests.appendChild(H2(null, "Simple Tests"));
93
94 tests.appendChild(generateUnitTest(1, genericTest, simpleData1,
95 "bar", ""));
96
97 tests.appendChild(generateUnitTest(2, genericTest, simpleData1,
98 "line", ""));
99
100 tests.appendChild(generateUnitTest(3, genericTest, simpleData2,
101 "pie", ""));
102
103 tests.appendChild(H2(null, "One Value Set"));
104
105 tests.appendChild(generateUnitTest(4, genericTest, singleData,
106 "bar", ""));
107 tests.appendChild(generateUnitTest(5, genericTest, singleData,
108 "line", ""));
109 tests.appendChild(generateUnitTest(6, genericTest, singleData,
110 "pie", ""));
111
112 tests.appendChild(H2(null, "Float Values Set"));
113 tests.appendChild(generateUnitTest(7, genericTest, floatData1,
114 "bar", ""));
115 tests.appendChild(generateUnitTest(8, genericTest, floatData1,
116 "line", ""));
117 tests.appendChild(generateUnitTest(9, genericTest, floatData1,
118 "pie", ""));
119
120 tests.appendChild(H2(null, "Dual Value Set"));
121 tests.appendChild(generateUnitTest(10, dualDataSet, dualData,
122 "bar", ""));
123 tests.appendChild(generateUnitTest(11, dualDataSet, dualData,
124 "line", ""));
125
126 tests.appendChild(H2(null, "Drawing and Clearing"));
127 tests.appendChild(generateUnitTest(12, genericTest, floatData1,
128"bar", ""));
129 tests.appendChild(generateUnitTest(13, genericTestAndClear, floatData1,
130"bar", ""));
131 tests.appendChild(generateUnitTest(14, genericTest, floatData1,
132 "pie", ""));
133 tests.appendChild(generateUnitTest(15, genericTestAndClear, floatData1,
134 "pie", ""));
135
136 tests.appendChild(H2(null, "Testing Circle Drawing"));
137
138 tests.appendChild(generateUnitTest(16, genericTest, ninety,
139 "pie", ""));
140
141}
142
143addLoadEvent(generateTests);