From c671e9b0b7becdc83c7dcb1538305702c33d226e Mon Sep 17 00:00:00 2001 From: facelessuser Date: Thu, 7 Mar 2024 12:06:56 -0700 Subject: [PATCH 1/3] Make longer and undefined have parity with CSS spec --- src/angles.js | 19 +++++++++++++++++-- test/angles.js | 5 +++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/angles.js b/src/angles.js index 93ddc3186..9c1ce6461 100644 --- a/src/angles.js +++ b/src/angles.js @@ -1,14 +1,29 @@ +import * as util from "./util.js"; + export function constrain (angle) { return ((angle % 360) + 360) % 360; } export function adjust (arc, angles) { + let [a1, a2] = angles.map(constrain); + + 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); - let angleDiff = a2 - a1; if (arc === "increasing") { diff --git a/test/angles.js b/test/angles.js index 36e2eb0c5..5c4787496 100644 --- a/test/angles.js +++ b/test/angles.js @@ -31,5 +31,10 @@ export default { args: ["raw", [-20, 380]], expect: [-20, 380], }, + { + name: "Longer and Undefined", + args: ["longer", [90, NaN]], + expect: [90, 450], + }, ], }; From 60688ee2a8d68d681df294a1186422807bbb0d1a Mon Sep 17 00:00:00 2001 From: facelessuser Date: Thu, 7 Mar 2024 12:10:57 -0700 Subject: [PATCH 2/3] Don't correct hues until after raw angles are returned --- src/angles.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/angles.js b/src/angles.js index 9c1ce6461..73c19c044 100644 --- a/src/angles.js +++ b/src/angles.js @@ -5,7 +5,7 @@ export function constrain (angle) { } export function adjust (arc, angles) { - let [a1, a2] = angles.map(constrain); + let [a1, a2] = angles; let none1 = util.isNone(a1); let none2 = util.isNone(a2); @@ -24,6 +24,9 @@ export function adjust (arc, angles) { return angles; } + a1 = constrain(a1); + a2 = constrain(a2); + let angleDiff = a2 - a1; if (arc === "increasing") { From 3a33b9b6fe3f4cb3f9f4b20136488f2b92329766 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Thu, 7 Mar 2024 12:20:06 -0700 Subject: [PATCH 3/3] Doesn't just apply to undefined --- test/angles.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/angles.js b/test/angles.js index 5c4787496..9cd2d7b5a 100644 --- a/test/angles.js +++ b/test/angles.js @@ -36,5 +36,10 @@ export default { args: ["longer", [90, NaN]], expect: [90, 450], }, + { + name: "Longer and Same Hues", + args: ["longer", [90, 90]], + expect: [90, 450], + }, ], };