Commit | Line | Data |
---|---|---|
3c1d225b JB |
1 | <html> |
2 | <head> | |
3 | <title>significant figures</title> | |
4 | <!--[if IE]> | |
5 | <script type="text/javascript" src="../excanvas.js"></script> | |
6 | <![endif]--> | |
7 | <script type="text/javascript" src="../strftime/strftime-min.js"></script> | |
8 | <script type="text/javascript" src="../rgbcolor/rgbcolor.js"></script> | |
9 | <script type="text/javascript" src="../dygraph-canvas.js"></script> | |
10 | <script type="text/javascript" src="../dygraph.js"></script> | |
11 | </head> | |
12 | <body> | |
13 | <p>Tests for various inputs to Dygraph.significantFigures(). All tests | |
14 | should have result PASS.</p> | |
15 | <div id="tests"></div> | |
16 | ||
17 | <script type="text/javascript"> | |
18 | // Helper functions for generating an HTML table for holding the test | |
19 | // results. | |
20 | createRow = function(columnType, columns) { | |
21 | var row = document.createElement('tr'); | |
22 | for (var i = 0; i < columns.length; i ++) { | |
23 | var th = document.createElement(columnType); | |
24 | var text = document.createTextNode(columns[i]); | |
25 | th.appendChild(text); | |
26 | row.appendChild(th); | |
27 | }; | |
28 | return row; | |
29 | }; | |
30 | ||
31 | createHeaderRow = function(columns) { | |
32 | return createRow('th', columns); | |
33 | }; | |
34 | ||
35 | createDataRow = function(columns) { | |
36 | return createRow('td', columns); | |
37 | }; | |
38 | ||
39 | createTable = function(headerColumns, dataColumnsList) { | |
40 | var table = document.createElement('table'); | |
41 | table.appendChild(createHeaderRow(headerColumns)); | |
42 | for (var i = 0; i < dataColumnsList.length; i++) { | |
43 | table.appendChild(createDataRow(dataColumnsList[i])); | |
44 | } | |
45 | table.setAttribute('border', '1'); | |
46 | return table; | |
47 | }; | |
48 | ||
49 | // input gives input floating point in string form | |
50 | // expected gives number of significant figures | |
51 | var testData = [ | |
52 | {input: '1.0', expected: 1}, | |
53 | {input: '1.0000', expected: 1}, | |
54 | {input: '3.14159', expected: 6}, | |
55 | {input: '3.05', expected: 3}, | |
56 | {input: '3.0000001', expected: 8}, | |
57 | {input: '1.999999999999', expected: 13} // = 13 digits. | |
58 | ]; | |
59 | ||
60 | var headers = ['Input', 'Output', 'Expected', 'Test Result']; | |
61 | var data = []; | |
62 | ||
63 | for (var i = 0; i < testData.length; i++) { | |
64 | var test = testData[i]; | |
65 | var output = Dygraph.significantFigures(parseFloat(test.input)); | |
66 | data[i] = [test.input, output, test.expected, | |
67 | (output == test.expected ? 'PASS' : 'FAIL')]; | |
68 | } | |
69 | ||
70 | var root = document.getElementById('tests'); | |
71 | root.appendChild(createTable(headers, data)); | |
72 | </script> | |
73 | ||
74 | <br> | |
75 | <br> | |
76 | ||
77 | <p>Check for correct number of significant figures with very large and small | |
78 | y values. Both plots have the same input x,y values.</p> | |
79 | ||
80 | <div id="smallvals1" style="width:600px; height:300px;"></div> | |
81 | <br> | |
82 | <br> | |
83 | <div id="smallvals2" style="width:600px; height:300px;"></div> | |
84 | ||
85 | <script type="text/javascript"> | |
86 | var data = [ | |
87 | [new Date("2009/12/01"), 1.02e-7], | |
88 | [new Date("2009/12/02"), 1.1e-7], | |
89 | [new Date("2009/12/03"), 1.2e-7], | |
90 | [new Date("2009/12/04"), 1.522e-7] | |
91 | ]; | |
92 | ||
93 | new Dygraph(document.getElementById("smallvals1"), data, | |
94 | { | |
95 | labels: ["Date","CustomFormatting"], | |
96 | yValueFormatter: function(x) { return x.toPrecision(3); } | |
97 | }); | |
98 | ||
99 | new Dygraph(document.getElementById("smallvals2"), data, | |
100 | { | |
101 | labels: ["Date","DefaultFormat"] | |
102 | }); | |
103 | </script> | |
104 | </body> | |
105 | </html> |