| 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); |