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