3 <title>significant figures
</title>
5 <script type=
"text/javascript" src=
"../excanvas.js"></script>
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>
13 <p>Tests for various inputs to Dygraph.significantFigures(). All tests
14 should have result PASS.
</p>
15 <div id=
"tests"></div>
17 <script type=
"text/javascript">
18 // Helper functions for generating an HTML table for holding the test
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]);
31 createHeaderRow = function(columns) {
32 return createRow('th', columns);
35 createDataRow = function(columns) {
36 return createRow('td', columns);
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]));
45 table.setAttribute('border', '
1');
49 // input gives input floating point in string form
50 // expected gives number of significant figures
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.
60 var headers = ['Input', 'Output', 'Expected', 'Test Result'];
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')];
70 var root = document.getElementById('tests');
71 root.appendChild(createTable(headers, data));
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>
80 <div id=
"smallvals1" style=
"width:600px; height:300px;"></div>
83 <div id=
"smallvals2" style=
"width:600px; height:300px;"></div>
85 <script type=
"text/javascript">
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]
93 new Dygraph(document.getElementById(
"smallvals1"), data,
95 labels: [
"Date",
"CustomFormatting"],
96 yValueFormatter: function(x) { return x.toPrecision(
3); }
99 new Dygraph(document.getElementById(
"smallvals2"), data,
101 labels: [
"Date",
"DefaultFormat"]