|
1 require("../env"); |
|
2 require("../../d3"); |
|
3 |
|
4 var vows = require("vows"), |
|
5 assert = require("assert"); |
|
6 |
|
7 var suite = vows.describe("d3.formatPrefix"); |
|
8 |
|
9 suite.addBatch({ |
|
10 "formatPrefix": { |
|
11 topic: function() { |
|
12 return d3.formatPrefix; |
|
13 }, |
|
14 "determines the appropriate prefix for small numbers": function(prefix) { |
|
15 assert.equal(prefix(0).symbol, ""); |
|
16 assert.equal(prefix(1e-00).symbol, ""); |
|
17 assert.equal(prefix(1e-01).symbol, ""); |
|
18 assert.equal(prefix(1e-02).symbol, ""); |
|
19 assert.equal(prefix(1e-03).symbol, "m"); |
|
20 assert.equal(prefix(1e-04).symbol, "m"); |
|
21 assert.equal(prefix(1e-05).symbol, "m"); |
|
22 assert.equal(prefix(1e-06).symbol, "μ"); |
|
23 assert.equal(prefix(1e-07).symbol, "μ"); |
|
24 assert.equal(prefix(1e-08).symbol, "μ"); |
|
25 assert.equal(prefix(1e-09).symbol, "n"); |
|
26 assert.equal(prefix(1e-10).symbol, "n"); |
|
27 assert.equal(prefix(1e-11).symbol, "n"); |
|
28 assert.equal(prefix(1e-12).symbol, "p"); |
|
29 assert.equal(prefix(1e-13).symbol, "p"); |
|
30 assert.equal(prefix(1e-14).symbol, "p"); |
|
31 assert.equal(prefix(1e-15).symbol, "f"); |
|
32 assert.equal(prefix(1e-16).symbol, "f"); |
|
33 assert.equal(prefix(1e-17).symbol, "f"); |
|
34 assert.equal(prefix(1e-18).symbol, "a"); |
|
35 assert.equal(prefix(1e-19).symbol, "a"); |
|
36 assert.equal(prefix(1e-20).symbol, "a"); |
|
37 assert.equal(prefix(1e-21).symbol, "z"); |
|
38 assert.equal(prefix(1e-22).symbol, "z"); |
|
39 assert.equal(prefix(1e-23).symbol, "z"); |
|
40 assert.equal(prefix(1e-24).symbol, "y"); |
|
41 assert.equal(prefix(1e-25).symbol, "y"); |
|
42 assert.equal(prefix(1e-26).symbol, "y"); |
|
43 assert.equal(prefix(1e-27).symbol, "y"); |
|
44 }, |
|
45 "determines the appropriate prefix for large numbers": function(prefix) { |
|
46 assert.equal(prefix(0).symbol, ""); |
|
47 assert.equal(prefix(1e00).symbol, ""); |
|
48 assert.equal(prefix(1e01).symbol, ""); |
|
49 assert.equal(prefix(1e02).symbol, ""); |
|
50 assert.equal(prefix(1e03).symbol, "k"); |
|
51 assert.equal(prefix(1e04).symbol, "k"); |
|
52 assert.equal(prefix(1e05).symbol, "k"); |
|
53 assert.equal(prefix(1e06).symbol, "M"); |
|
54 assert.equal(prefix(1e07).symbol, "M"); |
|
55 assert.equal(prefix(1e08).symbol, "M"); |
|
56 assert.equal(prefix(1e09).symbol, "G"); |
|
57 assert.equal(prefix(1e10).symbol, "G"); |
|
58 assert.equal(prefix(1e11).symbol, "G"); |
|
59 assert.equal(prefix(1e12).symbol, "T"); |
|
60 assert.equal(prefix(1e13).symbol, "T"); |
|
61 assert.equal(prefix(1e14).symbol, "T"); |
|
62 assert.equal(prefix(1e15).symbol, "P"); |
|
63 assert.equal(prefix(1e16).symbol, "P"); |
|
64 assert.equal(prefix(1e17).symbol, "P"); |
|
65 assert.equal(prefix(1e18).symbol, "E"); |
|
66 assert.equal(prefix(1e19).symbol, "E"); |
|
67 assert.equal(prefix(1e20).symbol, "E"); |
|
68 assert.equal(prefix(1e21).symbol, "Z"); |
|
69 assert.equal(prefix(1e22).symbol, "Z"); |
|
70 assert.equal(prefix(1e23).symbol, "Z"); |
|
71 assert.equal(prefix(1e24).symbol, "Y"); |
|
72 assert.equal(prefix(1e25).symbol, "Y"); |
|
73 assert.equal(prefix(1e26).symbol, "Y"); |
|
74 assert.equal(prefix(1e27).symbol, "Y"); |
|
75 }, |
|
76 "determines the appropriate prefix for negative numbers": function(prefix) { |
|
77 assert.equal(prefix(-0).symbol, ""); |
|
78 assert.equal(prefix(-1e-00).symbol, ""); |
|
79 assert.equal(prefix(-1e-03).symbol, "m"); |
|
80 assert.equal(prefix(-1e-06).symbol, "μ"); |
|
81 assert.equal(prefix(-1e-09).symbol, "n"); |
|
82 assert.equal(prefix(-1e-12).symbol, "p"); |
|
83 assert.equal(prefix(-1e-15).symbol, "f"); |
|
84 assert.equal(prefix(-1e-18).symbol, "a"); |
|
85 assert.equal(prefix(-1e-21).symbol, "z"); |
|
86 assert.equal(prefix(-1e-24).symbol, "y"); |
|
87 assert.equal(prefix(-1e-27).symbol, "y"); |
|
88 assert.equal(prefix(-1e00).symbol, ""); |
|
89 assert.equal(prefix(-1e03).symbol, "k"); |
|
90 assert.equal(prefix(-1e06).symbol, "M"); |
|
91 assert.equal(prefix(-1e09).symbol, "G"); |
|
92 assert.equal(prefix(-1e12).symbol, "T"); |
|
93 assert.equal(prefix(-1e15).symbol, "P"); |
|
94 assert.equal(prefix(-1e18).symbol, "E"); |
|
95 assert.equal(prefix(-1e21).symbol, "Z"); |
|
96 assert.equal(prefix(-1e24).symbol, "Y"); |
|
97 assert.equal(prefix(-1e27).symbol, "Y"); |
|
98 }, |
|
99 "considers the effect of rounding based on precision": function(prefix) { |
|
100 assert.equal(prefix(999.5, 3).symbol, "k"); |
|
101 assert.equal(prefix(999.5, 4).symbol, ""); |
|
102 assert.equal(prefix(.009995, 3).symbol, ""); |
|
103 assert.equal(prefix(.009995, 4).symbol, "m"); |
|
104 } |
|
105 } |
|
106 }); |
|
107 |
|
108 suite.export(module); |