diff --git a/src/index.js b/src/index.js index 510103c..ba317c7 100644 --- a/src/index.js +++ b/src/index.js @@ -8,7 +8,8 @@ export { } from "./identity.js"; export { - default as scaleLinear + default as scaleLinear, + pad as padLinear } from "./linear.js"; export { diff --git a/src/linear.js b/src/linear.js index b91f712..d52efca 100644 --- a/src/linear.js +++ b/src/linear.js @@ -70,3 +70,8 @@ export default function linear() { return linearish(scale); } + +export function pad([x0, x1], k) { + var dx = (x1 - x0) * k / 2; + return [x0 - dx, x1 + dx]; +} diff --git a/test/linear-test.js b/test/linear-test.js index 62de558..e239552 100644 --- a/test/linear-test.js +++ b/test/linear-test.js @@ -509,3 +509,9 @@ tape("linear.copy() returns a copy with changes to the unknown value are isolate test.equal(x.unknown(), 2); test.end(); }); + +tape("padLinear returns a padded domain array", function(test) { + test.deepEqual(scale.padLinear([0, 8], 0.5), [-2, 10]) + test.deepEqual(scale.padLinear([0, 8], 0.25), [-1, 9]) + test.end(); +});