diff --git a/src/angles.js b/src/angles.js index 93ddc3186..73c19c044 100644 --- a/src/angles.js +++ b/src/angles.js @@ -1,13 +1,31 @@ +import * as util from "./util.js"; + export function constrain (angle) { return ((angle % 360) + 360) % 360; } export function adjust (arc, angles) { + let [a1, a2] = angles; + + let none1 = util.isNone(a1); + let none2 = util.isNone(a2); + + if (none1 && none2) { + return [a1, a2]; + } + else if (none1) { + a1 = a2; + } + else if (none2) { + a2 = a1; + } + if (arc === "raw") { return angles; } - let [a1, a2] = angles.map(constrain); + a1 = constrain(a1); + a2 = constrain(a2); let angleDiff = a2 - a1; diff --git a/test/angles.js b/test/angles.js index 36e2eb0c5..9cd2d7b5a 100644 --- a/test/angles.js +++ b/test/angles.js @@ -31,5 +31,15 @@ export default { args: ["raw", [-20, 380]], expect: [-20, 380], }, + { + name: "Longer and Undefined", + args: ["longer", [90, NaN]], + expect: [90, 450], + }, + { + name: "Longer and Same Hues", + args: ["longer", [90, 90]], + expect: [90, 450], + }, ], };