Skip to content

Commit af85c4e

Browse files
committed
Merge branch 'fix-degenerate-log-ticks' into 3.2.8
2 parents 7f03c05 + 0015231 commit af85c4e

4 files changed

Lines changed: 19 additions & 11 deletions

File tree

d3.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6843,9 +6843,8 @@ d3 = function() {
68436843
return scale;
68446844
};
68456845
scale.ticks = function() {
6846-
var extent = d3_scaleExtent(domain), ticks = [];
6847-
if (extent.every(isFinite)) {
6848-
var u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
6846+
var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
6847+
if (isFinite(j - i)) {
68496848
if (positive) {
68506849
for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
68516850
ticks.push(pow(i));

d3.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/scale/log.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ function d3_scale_log(linear, base, positive, domain) {
4848

4949
scale.ticks = function() {
5050
var extent = d3_scaleExtent(domain),
51-
ticks = [];
52-
if (extent.every(isFinite)) {
53-
var u = extent[0],
54-
v = extent[1],
55-
i = Math.floor(log(u)),
56-
j = Math.ceil(log(v)),
57-
n = base % 1 ? 2 : base;
51+
ticks = [],
52+
u = extent[0],
53+
v = extent[1],
54+
i = Math.floor(log(u)),
55+
j = Math.ceil(log(v)),
56+
n = base % 1 ? 2 : base;
57+
if (isFinite(j - i)) {
5858
if (positive) {
5959
for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
6060
ticks.push(pow(i));

test/scale/log-test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,15 @@ suite.addBatch({
247247
"100", "200", "300", "", "", "", "", "", "",
248248
"1k"
249249
]);
250+
},
251+
"generates empty ticks when the domain is degenerate": function(d3) {
252+
var x = d3.scale.log();
253+
assert.deepEqual(x.domain([0, 1]).ticks(), []);
254+
assert.deepEqual(x.domain([1, 0]).ticks(), []);
255+
assert.deepEqual(x.domain([0, -1]).ticks(), []);
256+
assert.deepEqual(x.domain([-1, 0]).ticks(), []);
257+
assert.deepEqual(x.domain([-1, 1]).ticks(), []);
258+
assert.deepEqual(x.domain([0, 0]).ticks(), []);
250259
}
251260
},
252261

0 commit comments

Comments
 (0)