| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| |
| <link href="../src/nv.d3.css" rel="stylesheet" type="text/css"> |
| <link href="teststyle.css" rel="stylesheet" type='text/css'> |
| |
| <body> |
| <h3>Unit tests for nv.interactiveBisect - this function is important for rendering tooltips and the guideline on charts.</h3> |
| <div class='navigation'> |
| Tests: |
| <a href="lineChartTest.html">Line Chart</a> |
| <a href="stackedAreaChartTest.html">Stacked Area</a> |
| <a href="../examples/cumulativeLineChart.html">Cumulative Line</a> |
| </div> |
| |
| <script src="../lib/d3.v3.js"></script> |
| <script src="../nv.d3.js"></script> |
| <script src="../src/interactiveLayer.js"></script> |
| |
| <script> |
| function runTest(description, dataArray, searchVal, expectedResult, xAccessor) { |
| var result = nv.interactiveBisect(dataArray, searchVal, xAccessor); |
| var content = ""; |
| if (result === expectedResult) { |
| content = "PASSED: " + description; |
| } |
| else { |
| content = "FAILED: " + description; |
| } |
| |
| var node = document.createElement("div"); |
| node.innerHTML = content; |
| document.getElementsByTagName("body")[0].appendChild(node); |
| } |
| |
| var x = function(d) {return d;}; |
| |
| runTest("Basic test", |
| [0,1,2,3,4,5], |
| 3, |
| 3, |
| x |
| ); |
| |
| runTest("Basic test - zero bound", |
| [0,1,2,3,4,5], |
| 0, |
| 0, |
| x |
| ); |
| |
| runTest("Basic test - length bound", |
| [0,1,2,3,4,5], |
| 5, |
| 5, |
| x |
| ); |
| |
| runTest("Basic test - negative number", |
| [0,1,2,3,4,5], |
| -4, |
| 0, |
| x |
| ); |
| |
| runTest("Basic test - past the end", |
| [0,1,2,3,4,5], |
| 10, |
| 5, |
| x |
| ); |
| |
| runTest("Floating point number", |
| [0,1,2,3,4,5], |
| 0.34, |
| 0, |
| x |
| ); |
| |
| runTest("Floating point number part 2", |
| [0,1,2,3,4,5], |
| 1.50001, |
| 2, |
| x |
| ); |
| |
| runTest("Fibonacci - existing item search", |
| [0,1,1,2,3,5,8,13,21,34], |
| 8, |
| 6, |
| x |
| ); |
| |
| runTest("Fibonacci - inbetween item (left)", |
| [0,1,1,2,3,5,8,13,21,34], |
| 15, |
| 7, |
| x |
| ); |
| |
| runTest("Fibonacci - inbetween item (right)", |
| [0,1,1,2,3,5,8,13,21,34], |
| 20, |
| 8, |
| x |
| ); |
| |
| x = function(d,i) { return i}; |
| |
| runTest("xAccessor is index mode - existing item", |
| [0,1,1,2,3,5,8,13,21,34], |
| 7, |
| 7, |
| x |
| ); |
| |
| runTest("xAccessor is index mode - inbetween item", |
| [0,1,1,2,3,5,8,13,21,34], |
| 7.3, |
| 7, |
| x |
| ); |
| |
| runTest("xAccessor is index mode - inbetween item part 2", |
| [0,1,1,2,3,5,8,13,21,34], |
| 7.500001, |
| 8, |
| x |
| ); |
| |
| runTest("Empty array", |
| [], |
| 4, |
| 0, |
| x |
| ); |
| |
| runTest("Single element array", |
| [0], |
| 0, |
| 0, |
| x |
| ); |
| |
| runTest("Single element array - negative bound", |
| [0], |
| -10, |
| 0, |
| x |
| ); |
| |
| runTest("Single element array - past the end", |
| [0], |
| 1, |
| 0, |
| x |
| ); |
| </script> |