Commit | Line | Data |
---|---|---|
6a1aa64f DV |
1 | /* actual tests */ |
2 | ||
3 | var opts = { | |
4 | "IECanvasHTC": "../plotkit/iecanvas.htc", | |
5 | "enableEvents": true, | |
6 | "strokeColor": null | |
7 | }; | |
8 | ||
9 | function alert_val(e) { | |
10 | alert("x:" + e.chart.xval + "y:" + e.chart.yval); | |
11 | } | |
12 | ||
13 | function 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 | ||
25 | function 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 | ||
35 | function 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 | ||
48 | function makeTableRow(list) { | |
49 | return TR({}, map(partial(TD, null), list)); | |
50 | } | |
51 | ||
52 | function 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 | ||
61 | function generateCanvas(num) { | |
62 | var canvasid = "test" + num + "canvas"; | |
63 | var canvas = CANVAS({"id":canvasid, "width": "400", "height": "200"}, ""); | |
64 | return canvas | |
65 | } | |
66 | ||
67 | function 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 | ||
77 | function 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 | ||
143 | addLoadEvent(generateTests); |