Skip to content

Commit b5a1c34

Browse files
committed
Merge branch 'nice' of https://github.com/jasondavies/d3 into nice
2 parents 307016e + d2943a0 commit b5a1c34

6 files changed

Lines changed: 26 additions & 8 deletions

File tree

d3.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2208,9 +2208,12 @@ function d3_scale_nice(domain, nice) {
22082208
dx = x0; x0 = x1; x1 = dx;
22092209
}
22102210

2211-
nice = nice(x1 - x0);
2212-
domain[i0] = nice.floor(x0);
2213-
domain[i1] = nice.ceil(x1);
2211+
if (dx = x1 - x0) {
2212+
nice = nice(dx);
2213+
domain[i0] = nice.floor(x0);
2214+
domain[i1] = nice.ceil(x1);
2215+
}
2216+
22142217
return domain;
22152218
}
22162219

d3.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/scale/nice.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ function d3_scale_nice(domain, nice) {
1010
dx = x0; x0 = x1; x1 = dx;
1111
}
1212

13-
nice = nice(x1 - x0);
14-
domain[i0] = nice.floor(x0);
15-
domain[i1] = nice.ceil(x1);
13+
if (dx = x1 - x0) {
14+
nice = nice(dx);
15+
domain[i0] = nice.floor(x0);
16+
domain[i1] = nice.ceil(x1);
17+
}
18+
1619
return domain;
1720
}
1821

test/scale/linear-test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,10 @@ suite.addBatch({
180180
assert.deepEqual(x.domain(), [130, 0]);
181181
var x = linear().domain([0, .49]).nice();
182182
assert.deepEqual(x.domain(), [0, .5]);
183+
var x = linear().domain([0, 0]).nice();
184+
assert.deepEqual(x.domain(), [0, 0]);
185+
var x = linear().domain([.5, .5]).nice();
186+
assert.deepEqual(x.domain(), [.5, .5]);
183187
},
184188
"nicing a polylinear domain only affects the extent": function(linear) {
185189
var x = linear().domain([1.1, 1, 2, 3, 10.9]).nice();

test/scale/log-test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@ suite.addBatch({
194194
assert.deepEqual(x.domain(), [1000, 1]);
195195
var x = log().domain([.01, .49]).nice();
196196
assert.deepEqual(x.domain(), [.01, 1]);
197+
var x = log().domain([0, 0]).nice();
198+
assert.deepEqual(x.domain(), [0, 0]);
199+
var x = log().domain([.5, .5]).nice();
200+
assert.inDelta(x.domain(), [.5, .5], 1e-6);
197201
},
198202
"nicing a polylog domain only affects the extent": function(log) {
199203
var x = log().domain([1.1, 1.5, 10.9]).nice();

test/scale/pow-test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ suite.addBatch({
187187
assert.deepEqual(x.domain(), [130, 0]);
188188
var x = pow().domain([0, .49]).nice();
189189
assert.deepEqual(x.domain(), [0, .5]);
190+
var x = pow().domain([0, 0]).nice();
191+
assert.deepEqual(x.domain(), [0, 0]);
192+
var x = pow().domain([.5, .5]).nice();
193+
assert.deepEqual(x.domain(), [.5, .5]);
190194
},
191195
"nicing a polypower domain only affects the extent": function(pow) {
192196
var x = pow().domain([1.1, 1, 2, 3, 10.9]).nice();

0 commit comments

Comments
 (0)