toolkit/javascript/d3/test/core/round-test.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 require("../env");
       
     2 require("../../d3");
       
     3 
       
     4 var vows = require("vows"),
       
     5     assert = require("assert");
       
     6 
       
     7 var suite = vows.describe("d3.round");
       
     8 
       
     9 suite.addBatch({
       
    10   "round": {
       
    11     topic: function() {
       
    12       return d3.round;
       
    13     },
       
    14     "returns a number": function(round) {
       
    15       assert.isNumber(round(42));
       
    16     },
       
    17     "returns zero for zero": function(round) {
       
    18       assert.equal(round(0), 0);
       
    19     },
       
    20     "ignores degenerate input": function(round) {
       
    21       assert.isNaN(round(NaN));
       
    22       assert.equal(round(Infinity), Infinity);
       
    23       assert.equal(round(-Infinity), -Infinity);
       
    24     },
       
    25     "returns integers by default": function(round) {
       
    26       assert.equal(round(10.6), 11);
       
    27       assert.equal(round(10.4), 10);
       
    28       assert.equal(round(0.6), 1);
       
    29       assert.equal(round(0.4), 0);
       
    30       assert.equal(round(-0.6), -1);
       
    31       assert.equal(round(-0.4), 0);
       
    32       assert.equal(round(-10.6), -11);
       
    33       assert.equal(round(-10.4), -10);
       
    34     },
       
    35     "rounds to the specified decimal place": function(round) {
       
    36       assert.inDelta(round(10.56, 1), 10.6, 1e-6);
       
    37       assert.inDelta(round(10.54, 1), 10.5, 1e-6);
       
    38       assert.inDelta(round(0.56, 1), 0.6, 1e-6);
       
    39       assert.inDelta(round(0.54, 1), 0.5, 1e-6);
       
    40       assert.inDelta(round(-0.56, 1), -0.6, 1e-6);
       
    41       assert.inDelta(round(-0.54, 1), -0.5, 1e-6);
       
    42       assert.inDelta(round(-10.56, 1), -10.6, 1e-6);
       
    43       assert.inDelta(round(-10.54, 1), -10.5, 1e-6);
       
    44       assert.inDelta(round(10.556, 2), 10.56, 1e-6);
       
    45       assert.inDelta(round(10.554, 2), 10.55, 1e-6);
       
    46       assert.inDelta(round(0.556, 2), 0.56, 1e-6);
       
    47       assert.inDelta(round(0.554, 2), 0.55, 1e-6);
       
    48       assert.inDelta(round(-0.556, 2), -0.56, 1e-6);
       
    49       assert.inDelta(round(-0.554, 2), -0.55, 1e-6);
       
    50       assert.inDelta(round(-10.556, 2), -10.56, 1e-6);
       
    51       assert.inDelta(round(-10.554, 2), -10.55, 1e-6);
       
    52     },
       
    53     "rounds to the specified significant digits": function(round) {
       
    54       assert.equal(round(123.45, -1), 120);
       
    55       assert.equal(round(345.67, -1), 350);
       
    56       assert.equal(round(-123.45, -1), -120);
       
    57       assert.equal(round(-345.67, -1), -350);
       
    58       assert.equal(round(123.45, -2), 100);
       
    59       assert.equal(round(456.78, -2), 500);
       
    60       assert.equal(round(-123.45, -2), -100);
       
    61       assert.equal(round(-456.78, -2), -500);
       
    62       assert.equal(round(123.45, -3), 0);
       
    63       assert.equal(round(567.89, -3), 1000);
       
    64       assert.equal(round(-123.45, -3), 0);
       
    65       assert.equal(round(-567.89, -3), -1000);
       
    66     }
       
    67   }
       
    68 });
       
    69 
       
    70 suite.export(module);