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 | ||
6be8e54c | 77 | <p>Check for correct number of significant figures with very small |
3c1d225b JB |
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 = [ | |
6be8e54c JB |
87 | [2.036e-7, 1.02e-7], |
88 | [2.125e-7, 1.1e-7], | |
89 | [2.212e-7, 1.2e-7], | |
90 | [2.333e-7, 1.522e-7] | |
3c1d225b JB |
91 | ]; |
92 | ||
93 | new Dygraph(document.getElementById("smallvals1"), data, | |
94 | { | |
95 | labels: ["Date","CustomFormatting"], | |
6be8e54c | 96 | xValueFormatter: function(x) { return x.toPrecision(4); }, |
3c1d225b JB |
97 | yValueFormatter: function(x) { return x.toPrecision(3); } |
98 | }); | |
99 | ||
100 | new Dygraph(document.getElementById("smallvals2"), data, | |
101 | { | |
102 | labels: ["Date","DefaultFormat"] | |
103 | }); | |
104 | </script> | |
105 | </body> | |
106 | </html> |