aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/test-columns.mjs
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-13 18:32:49 -0500
committerCraig Jennings <c@cjennings.net>2026-06-13 18:32:49 -0500
commit38dc4dc89cf5d220e81bf5d6e293f11aed7bd138 (patch)
treef0c046b0043b764b26d00f985c9c28b2ada7990f /scripts/theme-studio/test-columns.mjs
parent59886459bf1bc081392eab4daa5d3060c1abc7e4 (diff)
downloaddotemacs-38dc4dc89cf5d220e81bf5d6e293f11aed7bd138.tar.gz
dotemacs-38dc4dc89cf5d220e81bf5d6e293f11aed7bd138.zip
Change theme studio spans to endpoint divisions
Diffstat (limited to 'scripts/theme-studio/test-columns.mjs')
-rw-r--r--scripts/theme-studio/test-columns.mjs18
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/theme-studio/test-columns.mjs b/scripts/theme-studio/test-columns.mjs
index ae4cfcce..13986036 100644
--- a/scripts/theme-studio/test-columns.mjs
+++ b/scripts/theme-studio/test-columns.mjs
@@ -121,18 +121,30 @@ test('regenColumn: Normal - n steps each side plus the base, ordered by offset',
assert.equal(r.members.find(m => m.offset === 0).hex, '#67809c');
});
-test('regenColumn: Boundary - n=0 is the base alone, no ramp() clamp to 1', () => {
+test('regenColumn: Boundary - n=0 is the base alone', () => {
const r = regenColumn('#67809c', 0);
assert.deepEqual(r.members, [{ hex: '#67809c', offset: 0, clamped: false }]);
});
+test('regenColumn: Boundary - span count is capped at eight per side', () => {
+ const r = regenColumn('#67809c', 10);
+ assert.equal(r.members.length, 17);
+ assert.deepEqual(r.members.map(m => m.offset), [-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]);
+});
+
test('regenColumn: Error - a malformed base returns a structured bad-hex', () => {
assert.deepEqual(regenColumn('nope', 2), { members: [], error: 'bad-hex' });
});
test('regenColumn: Boundary - generated pure white and black endpoint steps are skipped', () => {
- assert.ok(!regenColumn('#e0e0e0', 4).members.some(m => m.offset !== 0 && m.hex === '#ffffff'));
- assert.ok(!regenColumn('#101010', 4).members.some(m => m.offset !== 0 && m.hex === '#000000'));
+ assert.ok(!regenColumn('#fefefe', 8).members.some(m => m.offset !== 0 && m.hex === '#ffffff'));
+ assert.ok(!regenColumn('#010101', 8).members.some(m => m.offset !== 0 && m.hex === '#000000'));
+});
+
+test('regenColumn: Normal - changing span count redistributes steps between endpoint and base', () => {
+ const one = regenColumn('#67809c', 1).members.find(m => m.offset === 1).hex;
+ const two = regenColumn('#67809c', 2).members.find(m => m.offset === 1).hex;
+ assert.notEqual(one, two);
});
// --- rankByLightness --------------------------------------------------------