4 <title>significant figures
</title>
6 <script type=
"text/javascript" src=
"../excanvas.js"></script>
8 <script type=
"text/javascript" src=
"../strftime/strftime-min.js"></script>
9 <script type=
"text/javascript" src=
"../rgbcolor/rgbcolor.js"></script>
10 <script type=
"text/javascript" src=
"../dygraph-canvas.js"></script>
11 <script type=
"text/javascript" src=
"../dygraph.js"></script>
14 <p>Tests for various inputs to Dygraph.significantFigures(). All tests
15 should have result PASS.
</p>
16 <div id=
"tests"></div>
18 <script type=
"text/javascript">
19 // Helper functions for generating an HTML table for holding the test
21 createRow = function(columnType, columns) {
22 var row = document.createElement('tr');
23 for (var i =
0; i < columns.length; i ++) {
24 var th = document.createElement(columnType);
25 var text = document.createTextNode(columns[i]);
32 createHeaderRow = function(columns) {
33 return createRow('th', columns);
36 createDataRow = function(columns) {
37 return createRow('td', columns);
40 createTable = function(headerColumns, dataColumnsList) {
41 var table = document.createElement('table');
42 table.appendChild(createHeaderRow(headerColumns));
43 for (var i =
0; i < dataColumnsList.length; i++) {
44 table.appendChild(createDataRow(dataColumnsList[i]));
46 table.setAttribute('border', '
1');
50 // input gives input floating point in string form
51 // expected gives number of significant figures
53 {input: '
1.0', expected:
1},
54 {input: '
1.0000', expected:
1},
55 {input: '
3.14159', expected:
6},
56 {input: '
3.05', expected:
3},
57 {input: '
3.0000001', expected:
8},
58 {input: '
1.999999999999', expected:
13} // =
13 digits.
61 var headers = ['Input', 'Output', 'Expected', 'Test Result'];
64 for (var i =
0; i < testData.length; i++) {
65 var test = testData[i];
66 var output = Dygraph.significantFigures(parseFloat(test.input));
67 data[i] = [test.input, output, test.expected,
68 (output == test.expected ? 'PASS' : 'FAIL')];
71 var root = document.getElementById('tests');
72 root.appendChild(createTable(headers, data));
78 <p>Check for correct number of significant figures with very small
79 y values. Both plots have the same input x,y values.
</p>
81 <div id=
"smallvals1" style=
"width:600px; height:300px;"></div>
84 <div id=
"smallvals2" style=
"width:600px; height:300px;"></div>
86 <script type=
"text/javascript">
94 new Dygraph(document.getElementById(
"smallvals1"), data,
96 labels: [
"Date",
"CustomFormatting"],
97 xValueFormatter: function(x) { return x.toPrecision(
4); },
98 yValueFormatter: function(x) { return x.toPrecision(
3); }
101 new Dygraph(document.getElementById(
"smallvals2"), data,
103 labels: [
"Date",
"DefaultFormat"]