From a2e3d85916457a2acfd247bd7c9627250b61057b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Rivi=C3=A8re?= Date: Thu, 23 Dec 2021 22:44:56 +0100 Subject: [PATCH] test schemes tests generated at https://observablehq.com/@observablehq/test-plot-schemes --- test/scales/schemes-test.js | 221 ++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 test/scales/schemes-test.js diff --git a/test/scales/schemes-test.js b/test/scales/schemes-test.js new file mode 100644 index 0000000000..2798234ce4 --- /dev/null +++ b/test/scales/schemes-test.js @@ -0,0 +1,221 @@ +import * as Plot from "@observablehq/plot"; +import assert from "assert"; +import it from "../jsdom.js"; + +// tests generated at https://observablehq.com/@observablehq/test-plot-schemes +it("scheme accent", () => { + schemeTest("accent", [["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"], ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"], ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"], ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"], ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"],null]); +}); + +it("scheme category10", () => { + schemeTest("category10", [["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"], ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"], ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"], ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"], ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"],null]); +}); + +it("scheme dark2", () => { + schemeTest("dark2", [["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"], ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"], ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"], ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"], ["#1b9e77", "#d95f02", "#7570b3", "#e7298a", "#66a61e", "#e6ab02", "#a6761d", "#666666"],null]); +}); + +it("scheme paired", () => { + schemeTest("paired", [["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"], ["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"], ["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"], ["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"], ["#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a", "#ffff99", "#b15928"],null]); +}); + +it("scheme pastel1", () => { + schemeTest("pastel1", [["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"], ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"], ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"], ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"], ["#fbb4ae", "#b3cde3", "#ccebc5", "#decbe4", "#fed9a6", "#ffffcc", "#e5d8bd", "#fddaec", "#f2f2f2"],null]); +}); + +it("scheme pastel2", () => { + schemeTest("pastel2", [["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"], ["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"], ["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"], ["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"], ["#b3e2cd", "#fdcdac", "#cbd5e8", "#f4cae4", "#e6f5c9", "#fff2ae", "#f1e2cc", "#cccccc"],null]); +}); + +it("scheme set1", () => { + schemeTest("set1", [["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"], ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"], ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"], ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"], ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999"],null]); +}); + +it("scheme set2", () => { + schemeTest("set2", [["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"], ["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"], ["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"], ["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"], ["#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3", "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3"],null]); +}); + +it("scheme set3", () => { + schemeTest("set3", [["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"], ["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"], ["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"], ["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"], ["#8dd3c7", "#ffffb3", "#bebada", "#fb8072", "#80b1d3", "#fdb462", "#b3de69", "#fccde5", "#d9d9d9", "#bc80bd", "#ccebc5", "#ffed6f"],null]); +}); + +it("scheme tableau10", () => { + schemeTest("tableau10", [["#4e79a7", "#f28e2c", "#e15759", "#76b7b2", "#59a14f", "#edc949", "#af7aa1", "#ff9da7", "#9c755f", "#bab0ab"], ["#4e79a7", "#f28e2c", "#e15759", "#76b7b2", "#59a14f", "#edc949", "#af7aa1", "#ff9da7", "#9c755f", "#bab0ab"], ["#4e79a7", "#f28e2c", "#e15759", "#76b7b2", "#59a14f", "#edc949", "#af7aa1", "#ff9da7", "#9c755f", "#bab0ab"], ["#4e79a7", "#f28e2c", "#e15759", "#76b7b2", "#59a14f", "#edc949", "#af7aa1", "#ff9da7", "#9c755f", "#bab0ab"], ["#4e79a7", "#f28e2c", "#e15759", "#76b7b2", "#59a14f", "#edc949", "#af7aa1", "#ff9da7", "#9c755f", "#bab0ab"],null]); +}); + +it("scheme brbg", () => { + schemeTest("brbg", [["#d8b365", "#5ab4ac"], ["#d8b365", "#f5f5f5", "#5ab4ac"], ["#a6611a", "#dfc27d", "#f5f5f5", "#80cdc1", "#018571"], ["#543005", "#8c510a", "#bf812d", "#dfc27d", "#f6e8c3", "#f5f5f5", "#c7eae5", "#80cdc1", "#35978f", "#01665e", "#003c30"], ["rgb(84, 48, 5)", "rgb(119, 69, 9)", "rgb(152, 94, 21)", "rgb(183, 125, 46)", "rgb(206, 161, 86)", "rgb(225, 196, 133)", "rgb(239, 221, 176)", "rgb(244, 236, 212)", "rgb(238, 241, 234)", "rgb(215, 237, 234)", "rgb(179, 225, 219)", "rgb(136, 206, 196)", "rgb(91, 178, 168)", "rgb(49, 145, 137)", "rgb(18, 115, 106)", "rgb(3, 87, 77)", "rgb(0, 60, 48)"], ["rgb(84, 48, 5)", "rgb(188, 132, 53)", "rgb(238, 241, 234)", "rgb(127, 201, 191)", "rgb(0, 60, 48)"]]); +}); + +it("scheme prgn", () => { + schemeTest("prgn", [["#af8dc3", "#7fbf7b"], ["#af8dc3", "#f7f7f7", "#7fbf7b"], ["#7b3294", "#c2a5cf", "#f7f7f7", "#a6dba0", "#008837"], ["#40004b", "#762a83", "#9970ab", "#c2a5cf", "#e7d4e8", "#f7f7f7", "#d9f0d3", "#a6dba0", "#5aae61", "#1b7837", "#00441b"], ["rgb(64, 0, 75)", "rgb(97, 27, 109)", "rgb(125, 61, 140)", "rgb(149, 101, 166)", "rgb(174, 138, 189)", "rgb(198, 170, 209)", "rgb(220, 199, 225)", "rgb(236, 224, 237)", "rgb(239, 240, 239)", "rgb(227, 242, 223)", "rgb(203, 234, 197)", "rgb(170, 219, 165)", "rgb(128, 196, 129)", "rgb(84, 166, 94)", "rgb(45, 134, 67)", "rgb(18, 101, 45)", "rgb(0, 68, 27)"], ["rgb(64, 0, 75)", "rgb(154, 109, 170)", "rgb(239, 240, 239)", "rgb(162, 215, 158)", "rgb(0, 68, 27)"]]); +}); + +it("scheme piyg", () => { + schemeTest("piyg", [["#e9a3c9", "#a1d76a"], ["#e9a3c9", "#f7f7f7", "#a1d76a"], ["#d01c8b", "#f1b6da", "#f7f7f7", "#b8e186", "#4dac26"], ["#8e0152", "#c51b7d", "#de77ae", "#f1b6da", "#fde0ef", "#f7f7f7", "#e6f5d0", "#b8e186", "#7fbc41", "#4d9221", "#276419"], ["rgb(142, 1, 82)", "rgb(175, 20, 109)", "rgb(201, 55, 138)", "rgb(218, 104, 167)", "rgb(231, 149, 195)", "rgb(242, 185, 218)", "rgb(249, 212, 233)", "rgb(250, 232, 241)", "rgb(245, 243, 239)", "rgb(235, 245, 221)", "rgb(216, 239, 187)", "rgb(189, 226, 144)", "rgb(155, 206, 100)", "rgb(122, 182, 65)", "rgb(90, 156, 43)", "rgb(63, 129, 31)", "rgb(39, 100, 25)"], ["rgb(142, 1, 82)", "rgb(221, 114, 173)", "rgb(245, 243, 239)", "rgb(182, 222, 135)", "rgb(39, 100, 25)"]]); +}); + +it("scheme puor", () => { + schemeTest("puor", [["#998ec3", "#f1a340"], ["#998ec3", "#f7f7f7", "#f1a340"], ["#5e3c99", "#b2abd2", "#f7f7f7", "#fdb863", "#e66101"], ["#2d004b", "#542788", "#8073ac", "#b2abd2", "#d8daeb", "#f7f7f7", "#fee0b6", "#fdb863", "#e08214", "#b35806", "#7f3b08"], ["rgb(45, 0, 75)", "rgb(70, 26, 112)", "rgb(95, 61, 143)", "rgb(123, 103, 168)", "rgb(153, 142, 191)", "rgb(181, 176, 212)", "rgb(206, 205, 228)", "rgb(227, 228, 238)", "rgb(243, 238, 234)", "rgb(251, 231, 205)", "rgb(253, 213, 160)", "rgb(250, 187, 110)", "rgb(238, 157, 61)", "rgb(217, 126, 26)", "rgb(190, 99, 11)", "rgb(159, 78, 7)", "rgb(127, 59, 8)"], ["rgb(45, 0, 75)", "rgb(129, 112, 172)", "rgb(243, 238, 234)", "rgb(248, 182, 100)", "rgb(127, 59, 8)"]]); +}); + +it("scheme rdbu", () => { + schemeTest("rdbu", [["#ef8a62", "#67a9cf"], ["#ef8a62", "#f7f7f7", "#67a9cf"], ["#ca0020", "#f4a582", "#f7f7f7", "#92c5de", "#0571b0"], ["#67001f", "#b2182b", "#d6604d", "#f4a582", "#fddbc7", "#f7f7f7", "#d1e5f0", "#92c5de", "#4393c3", "#2166ac", "#053061"], ["rgb(103, 0, 31)", "rgb(148, 17, 39)", "rgb(184, 45, 53)", "rgb(209, 87, 75)", "rgb(228, 130, 104)", "rgb(243, 170, 140)", "rgb(250, 204, 180)", "rgb(250, 228, 216)", "rgb(242, 239, 238)", "rgb(222, 235, 242)", "rgb(191, 220, 235)", "rgb(152, 199, 223)", "rgb(107, 172, 208)", "rgb(68, 142, 193)", "rgb(42, 113, 174)", "rgb(23, 81, 142)", "rgb(5, 48, 97)"], ["rgb(103, 0, 31)", "rgb(213, 96, 80)", "rgb(242, 239, 238)", "rgb(143, 194, 221)", "rgb(5, 48, 97)"]]); +}); + +it("scheme rdgy", () => { + schemeTest("rdgy", [["#ef8a62", "#999999"], ["#ef8a62", "#ffffff", "#999999"], ["#ca0020", "#f4a582", "#ffffff", "#bababa", "#404040"], ["#67001f", "#b2182b", "#d6604d", "#f4a582", "#fddbc7", "#ffffff", "#e0e0e0", "#bababa", "#878787", "#4d4d4d", "#1a1a1a"], ["rgb(103, 0, 31)", "rgb(148, 17, 39)", "rgb(184, 45, 53)", "rgb(209, 87, 75)", "rgb(228, 130, 104)", "rgb(243, 170, 140)", "rgb(250, 204, 181)", "rgb(253, 231, 219)", "rgb(250, 244, 241)", "rgb(235, 235, 235)", "rgb(214, 214, 214)", "rgb(189, 189, 189)", "rgb(160, 160, 160)", "rgb(127, 127, 127)", "rgb(92, 92, 92)", "rgb(58, 58, 58)", "rgb(26, 26, 26)"], ["rgb(103, 0, 31)", "rgb(213, 96, 80)", "rgb(250, 244, 241)", "rgb(184, 184, 184)", "rgb(26, 26, 26)"]]); +}); + +it("scheme rdylbu", () => { + schemeTest("rdylbu", [["#fc8d59", "#91bfdb"], ["#fc8d59", "#ffffbf", "#91bfdb"], ["#d7191c", "#fdae61", "#ffffbf", "#abd9e9", "#2c7bb6"], ["#a50026", "#d73027", "#f46d43", "#fdae61", "#fee090", "#ffffbf", "#e0f3f8", "#abd9e9", "#74add1", "#4575b4", "#313695"], ["rgb(165, 0, 38)", "rgb(195, 31, 40)", "rgb(221, 64, 48)", "rgb(238, 102, 64)", "rgb(248, 141, 82)", "rgb(252, 179, 105)", "rgb(254, 210, 132)", "rgb(254, 234, 162)", "rgb(250, 248, 193)", "rgb(234, 247, 224)", "rgb(209, 235, 239)", "rgb(177, 218, 234)", "rgb(144, 194, 221)", "rgb(111, 165, 205)", "rgb(83, 130, 187)", "rgb(63, 93, 168)", "rgb(49, 54, 149)"], ["rgb(165, 0, 38)", "rgb(241, 110, 67)", "rgb(250, 248, 193)", "rgb(171, 214, 232)", "rgb(49, 54, 149)"]]); +}); + +it("scheme rdylgn", () => { + schemeTest("rdylgn", [["#fc8d59", "#91cf60"], ["#fc8d59", "#ffffbf", "#91cf60"], ["#d7191c", "#fdae61", "#ffffbf", "#a6d96a", "#1a9641"], ["#a50026", "#d73027", "#f46d43", "#fdae61", "#fee08b", "#ffffbf", "#d9ef8b", "#a6d96a", "#66bd63", "#1a9850", "#006837"], ["rgb(165, 0, 38)", "rgb(195, 31, 40)", "rgb(221, 64, 48)", "rgb(238, 102, 64)", "rgb(248, 141, 82)", "rgb(252, 179, 104)", "rgb(254, 210, 129)", "rgb(254, 234, 158)", "rgb(249, 247, 174)", "rgb(230, 244, 158)", "rgb(203, 233, 132)", "rgb(171, 219, 113)", "rgb(133, 203, 103)", "rgb(91, 183, 95)", "rgb(48, 160, 84)", "rgb(18, 134, 70)", "rgb(0, 104, 55)"], ["rgb(165, 0, 38)", "rgb(241, 110, 67)", "rgb(249, 247, 174)", "rgb(164, 216, 110)", "rgb(0, 104, 55)"]]); +}); + +it("scheme spectral", () => { + schemeTest("spectral", [["#fc8d59", "#99d594"], ["#fc8d59", "#ffffbf", "#99d594"], ["#d7191c", "#fdae61", "#ffffbf", "#abdda4", "#2b83ba"], ["#9e0142", "#d53e4f", "#f46d43", "#fdae61", "#fee08b", "#ffffbf", "#e6f598", "#abdda4", "#66c2a5", "#3288bd", "#5e4fa2"], ["rgb(158, 1, 66)", "rgb(191, 39, 73)", "rgb(219, 73, 74)", "rgb(238, 105, 73)", "rgb(248, 142, 83)", "rgb(252, 179, 104)", "rgb(254, 210, 129)", "rgb(254, 234, 158)", "rgb(251, 248, 176)", "rgb(238, 248, 168)", "rgb(213, 238, 159)", "rgb(177, 224, 161)", "rgb(137, 207, 165)", "rgb(97, 183, 171)", "rgb(70, 150, 179)", "rgb(70, 115, 177)", "rgb(94, 79, 162)"], ["rgb(158, 1, 66)", "rgb(240, 112, 74)", "rgb(251, 248, 176)", "rgb(169, 221, 162)", "rgb(94, 79, 162)"]]); +}); + +it("scheme burd", () => { + schemeTest("burd", [["#ef8a62", "#67a9cf"], ["#67a9cf", "#f7f7f7", "#ef8a62"], ["#0571b0", "#92c5de", "#f7f7f7", "#f4a582", "#ca0020"], ["#053061", "#2166ac", "#4393c3", "#92c5de", "#d1e5f0", "#f7f7f7", "#fddbc7", "#f4a582", "#d6604d", "#b2182b", "#67001f"], ["rgb(5, 48, 97)", "rgb(23, 81, 142)", "rgb(42, 113, 174)", "rgb(68, 142, 193)", "rgb(107, 172, 208)", "rgb(152, 199, 223)", "rgb(191, 220, 235)", "rgb(222, 235, 242)", "rgb(242, 239, 238)", "rgb(250, 228, 216)", "rgb(250, 204, 180)", "rgb(243, 170, 140)", "rgb(228, 130, 104)", "rgb(209, 87, 75)", "rgb(184, 45, 53)", "rgb(148, 17, 39)", "rgb(103, 0, 31)"], ["rgb(5, 48, 97)", "rgb(75, 148, 196)", "rgb(242, 239, 238)", "rgb(241, 163, 133)", "rgb(103, 0, 31)"]]); +}); + +it("scheme buylrd", () => { + schemeTest("buylrd", [["#fc8d59", "#91bfdb"], ["#91bfdb", "#ffffbf", "#fc8d59"], ["#2c7bb6", "#abd9e9", "#ffffbf", "#fdae61", "#d7191c"], ["#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"], ["rgb(49, 54, 149)", "rgb(63, 93, 168)", "rgb(83, 130, 187)", "rgb(111, 165, 205)", "rgb(144, 194, 221)", "rgb(177, 218, 234)", "rgb(209, 235, 239)", "rgb(234, 247, 224)", "rgb(250, 248, 193)", "rgb(254, 234, 162)", "rgb(254, 210, 132)", "rgb(252, 179, 105)", "rgb(248, 141, 82)", "rgb(238, 102, 64)", "rgb(221, 64, 48)", "rgb(195, 31, 40)", "rgb(165, 0, 38)"], ["rgb(49, 54, 149)", "rgb(117, 171, 208)", "rgb(250, 248, 193)", "rgb(252, 172, 100)", "rgb(165, 0, 38)"]]); +}); + +it("scheme blues", () => { + schemeTest("blues", [["#deebf7", "#9ecae1", "#3182bd"], ["#deebf7", "#9ecae1", "#3182bd"], ["#eff3ff", "#bdd7e7", "#6baed6", "#3182bd", "#08519c"], ["rgb(247, 251, 255)", "rgb(227, 238, 249)", "rgb(207, 225, 242)", "rgb(181, 212, 233)", "rgb(147, 195, 223)", "rgb(109, 174, 213)", "rgb(75, 151, 201)", "rgb(47, 126, 188)", "rgb(24, 100, 170)", "rgb(10, 74, 144)", "rgb(8, 48, 107)"], ["rgb(247, 251, 255)", "rgb(235, 243, 251)", "rgb(222, 235, 247)", "rgb(210, 227, 243)", "rgb(195, 219, 238)", "rgb(177, 210, 232)", "rgb(156, 200, 226)", "rgb(132, 188, 219)", "rgb(109, 174, 213)", "rgb(87, 160, 206)", "rgb(67, 145, 198)", "rgb(50, 129, 189)", "rgb(34, 113, 180)", "rgb(21, 97, 168)", "rgb(12, 81, 152)", "rgb(9, 64, 131)", "rgb(8, 48, 107)"], ["rgb(247, 251, 255)", "rgb(207, 225, 242)", "rgb(109, 174, 213)", "rgb(47, 126, 188)", "rgb(8, 48, 107)"]]); +}); + +it("scheme greens", () => { + schemeTest("greens", [["#e5f5e0", "#a1d99b", "#31a354"], ["#e5f5e0", "#a1d99b", "#31a354"], ["#edf8e9", "#bae4b3", "#74c476", "#31a354", "#006d2c"], ["rgb(247, 252, 245)", "rgb(232, 246, 227)", "rgb(211, 238, 205)", "rgb(183, 226, 177)", "rgb(151, 212, 148)", "rgb(115, 195, 120)", "rgb(77, 175, 98)", "rgb(47, 152, 79)", "rgb(21, 127, 59)", "rgb(3, 100, 41)", "rgb(0, 68, 27)"], ["rgb(247, 252, 245)", "rgb(238, 248, 234)", "rgb(227, 244, 222)", "rgb(214, 239, 208)", "rgb(198, 232, 191)", "rgb(180, 225, 173)", "rgb(160, 216, 155)", "rgb(138, 206, 137)", "rgb(115, 195, 120)", "rgb(91, 183, 106)", "rgb(69, 170, 93)", "rgb(50, 155, 81)", "rgb(34, 139, 69)", "rgb(18, 124, 57)", "rgb(6, 107, 45)", "rgb(1, 88, 36)", "rgb(0, 68, 27)"], ["rgb(247, 252, 245)", "rgb(211, 238, 205)", "rgb(115, 195, 120)", "rgb(47, 152, 79)", "rgb(0, 68, 27)"]]); +}); + +it("scheme greys", () => { + schemeTest("greys", [["#f0f0f0", "#bdbdbd", "#636363"], ["#f0f0f0", "#bdbdbd", "#636363"], ["#f7f7f7", "#cccccc", "#969696", "#636363", "#252525"], ["rgb(255, 255, 255)", "rgb(242, 242, 242)", "rgb(226, 226, 226)", "rgb(206, 206, 206)", "rgb(180, 180, 180)", "rgb(151, 151, 151)", "rgb(122, 122, 122)", "rgb(95, 95, 95)", "rgb(64, 64, 64)", "rgb(30, 30, 30)", "rgb(0, 0, 0)"], ["rgb(255, 255, 255)", "rgb(247, 247, 247)", "rgb(239, 239, 239)", "rgb(228, 228, 228)", "rgb(216, 216, 216)", "rgb(203, 203, 203)", "rgb(187, 187, 187)", "rgb(169, 169, 169)", "rgb(151, 151, 151)", "rgb(133, 133, 133)", "rgb(115, 115, 115)", "rgb(98, 98, 98)", "rgb(80, 80, 80)", "rgb(59, 59, 59)", "rgb(38, 38, 38)", "rgb(19, 19, 19)", "rgb(0, 0, 0)"], ["rgb(255, 255, 255)", "rgb(226, 226, 226)", "rgb(151, 151, 151)", "rgb(95, 95, 95)", "rgb(0, 0, 0)"]]); +}); + +it("scheme oranges", () => { + schemeTest("oranges", [["#fee6ce", "#fdae6b", "#e6550d"], ["#fee6ce", "#fdae6b", "#e6550d"], ["#feedde", "#fdbe85", "#fd8d3c", "#e6550d", "#a63603"], ["rgb(255, 245, 235)", "rgb(254, 232, 211)", "rgb(253, 216, 179)", "rgb(253, 194, 140)", "rgb(253, 167, 98)", "rgb(251, 141, 61)", "rgb(242, 112, 29)", "rgb(226, 86, 9)", "rgb(196, 65, 3)", "rgb(159, 51, 3)", "rgb(127, 39, 4)"], ["rgb(255, 245, 235)", "rgb(255, 237, 220)", "rgb(254, 229, 204)", "rgb(254, 219, 183)", "rgb(253, 206, 160)", "rgb(253, 191, 134)", "rgb(253, 174, 108)", "rgb(253, 157, 84)", "rgb(251, 141, 61)", "rgb(247, 123, 40)", "rgb(239, 106, 23)", "rgb(228, 89, 11)", "rgb(213, 75, 4)", "rgb(191, 63, 2)", "rgb(168, 55, 3)", "rgb(147, 47, 3)", "rgb(127, 39, 4)"], ["rgb(255, 245, 235)", "rgb(253, 216, 179)", "rgb(251, 141, 61)", "rgb(226, 86, 9)", "rgb(127, 39, 4)"]]); +}); + +it("scheme purples", () => { + schemeTest("purples", [["#efedf5", "#bcbddc", "#756bb1"], ["#efedf5", "#bcbddc", "#756bb1"], ["#f2f0f7", "#cbc9e2", "#9e9ac8", "#756bb1", "#54278f"], ["rgb(252, 251, 253)", "rgb(241, 239, 246)", "rgb(226, 225, 239)", "rgb(206, 206, 229)", "rgb(182, 181, 216)", "rgb(158, 155, 201)", "rgb(135, 130, 188)", "rgb(115, 99, 172)", "rgb(97, 64, 155)", "rgb(80, 31, 140)", "rgb(63, 0, 125)"], ["rgb(252, 251, 253)", "rgb(245, 244, 249)", "rgb(238, 236, 245)", "rgb(228, 227, 240)", "rgb(217, 216, 234)", "rgb(203, 203, 227)", "rgb(188, 188, 219)", "rgb(173, 172, 210)", "rgb(158, 155, 201)", "rgb(143, 139, 193)", "rgb(129, 123, 185)", "rgb(117, 103, 174)", "rgb(106, 81, 164)", "rgb(95, 60, 153)", "rgb(84, 40, 143)", "rgb(74, 20, 134)", "rgb(63, 0, 125)"], ["rgb(252, 251, 253)", "rgb(226, 225, 239)", "rgb(158, 155, 201)", "rgb(115, 99, 172)", "rgb(63, 0, 125)"]]); +}); + +it("scheme reds", () => { + schemeTest("reds", [["#fee0d2", "#fc9272", "#de2d26"], ["#fee0d2", "#fc9272", "#de2d26"], ["#fee5d9", "#fcae91", "#fb6a4a", "#de2d26", "#a50f15"], ["rgb(255, 245, 240)", "rgb(254, 227, 214)", "rgb(253, 201, 180)", "rgb(252, 170, 142)", "rgb(252, 138, 107)", "rgb(249, 105, 76)", "rgb(239, 69, 51)", "rgb(217, 39, 35)", "rgb(187, 21, 26)", "rgb(151, 11, 19)", "rgb(103, 0, 13)"], ["rgb(255, 245, 240)", "rgb(254, 234, 225)", "rgb(254, 221, 207)", "rgb(253, 205, 185)", "rgb(252, 186, 161)", "rgb(252, 166, 138)", "rgb(252, 146, 115)", "rgb(251, 126, 94)", "rgb(249, 105, 76)", "rgb(244, 83, 60)", "rgb(235, 61, 47)", "rgb(220, 42, 37)", "rgb(203, 28, 30)", "rgb(183, 20, 25)", "rgb(161, 14, 21)", "rgb(134, 7, 17)", "rgb(103, 0, 13)"], ["rgb(255, 245, 240)", "rgb(253, 201, 180)", "rgb(249, 105, 76)", "rgb(217, 39, 35)", "rgb(103, 0, 13)"]]); +}); + +it("scheme turbo", () => { + schemeTest("turbo", [["rgb(35, 23, 27)", "rgb(144, 12, 0)"], ["rgb(35, 23, 27)", "rgb(149, 251, 81)", "rgb(144, 12, 0)"], ["rgb(35, 23, 27)", "rgb(38, 188, 225)", "rgb(149, 251, 81)", "rgb(255, 130, 29)", "rgb(144, 12, 0)"], ["rgb(35, 23, 27)", "rgb(74, 88, 221)", "rgb(47, 157, 245)", "rgb(39, 215, 196)", "rgb(77, 248, 132)", "rgb(149, 251, 81)", "rgb(222, 221, 50)", "rgb(255, 164, 35)", "rgb(246, 95, 24)", "rgb(186, 34, 8)", "rgb(144, 12, 0)"], ["rgb(35, 23, 27)", "rgb(73, 62, 174)", "rgb(69, 105, 238)", "rgb(50, 149, 247)", "rgb(38, 188, 225)", "rgb(41, 220, 188)", "rgb(63, 243, 147)", "rgb(101, 253, 110)", "rgb(149, 251, 81)", "rgb(197, 236, 60)", "rgb(236, 209, 46)", "rgb(255, 173, 36)", "rgb(255, 130, 29)", "rgb(240, 86, 22)", "rgb(203, 47, 13)", "rgb(163, 19, 2)", "rgb(144, 12, 0)"], ["rgb(35, 23, 27)", "rgb(47, 157, 245)", "rgb(149, 251, 81)", "rgb(255, 164, 35)", "rgb(144, 12, 0)"]]); +}); + +it("scheme viridis", () => { + schemeTest("viridis", [["#440154", "#fde725"], ["#440154", "#21918c", "#fde725"], ["#440154", "#3b528b", "#21918c", "#5ec962", "#fde725"], ["#440154", "#482475", "#414487", "#355f8d", "#2a788e", "#21918c", "#22a884", "#44bf70", "#7ad151", "#bddf26", "#fde725"], ["#440154", "#48186a", "#472d7b", "#424086", "#3b528b", "#33638d", "#2c728e", "#26828e", "#21918c", "#1fa088", "#28ae80", "#3fbc73", "#5ec962", "#84d44b", "#addc30", "#d8e219", "#fde725"], ["#440154", "#414487", "#21918c", "#44bf70", "#fde725"]]); +}); + +it("scheme magma", () => { + schemeTest("magma", [["#000004", "#fcfdbf"], ["#000004", "#b73779", "#fcfdbf"], ["#000004", "#51127c", "#b73779", "#fc8961", "#fcfdbf"], ["#000004", "#140e36", "#3b0f70", "#641a80", "#8c2981", "#b73779", "#de4968", "#f7705c", "#fe9f6d", "#fecf92", "#fcfdbf"], ["#000004", "#0a0822", "#1d1147", "#36106b", "#51127c", "#6a1c81", "#832681", "#9c2e7f", "#b73779", "#d0416f", "#e75263", "#f56b5c", "#fc8961", "#fea772", "#fec488", "#fde2a3", "#fcfdbf"], ["#000004", "#3b0f70", "#b73779", "#f7705c", "#fcfdbf"]]); +}); + +it("scheme inferno", () => { + schemeTest("inferno", [["#000004", "#fcffa4"], ["#000004", "#bc3754", "#fcffa4"], ["#000004", "#57106e", "#bc3754", "#f98e09", "#fcffa4"], ["#000004", "#160b39", "#420a68", "#6a176e", "#932667", "#bc3754", "#dd513a", "#f37819", "#fca50a", "#f6d746", "#fcffa4"], ["#000004", "#0b0724", "#210c4a", "#3d0965", "#57106e", "#71196e", "#8a226a", "#a32c61", "#bc3754", "#d24644", "#e45a31", "#f1731d", "#f98e09", "#fcac11", "#f9cb35", "#f2ea69", "#fcffa4"], ["#000004", "#420a68", "#bc3754", "#f37819", "#fcffa4"]]); +}); + +it("scheme plasma", () => { + schemeTest("plasma", [["#0d0887", "#f0f921"], ["#0d0887", "#cc4778", "#f0f921"], ["#0d0887", "#7e03a8", "#cc4778", "#f89540", "#f0f921"], ["#0d0887", "#41049d", "#6a00a8", "#8f0da4", "#b12a90", "#cc4778", "#e16462", "#f2844b", "#fca636", "#fcce25", "#f0f921"], ["#0d0887", "#310597", "#4c02a1", "#6600a7", "#7e03a8", "#9511a1", "#aa2395", "#bc3587", "#cc4778", "#da5a6a", "#e66c5c", "#f0804e", "#f89540", "#fdac33", "#fdc527", "#f8df25", "#f0f921"], ["#0d0887", "#6a00a8", "#cc4778", "#f2844b", "#f0f921"]]); +}); + +it("scheme cividis", () => { + schemeTest("cividis", [["rgb(0, 32, 81)", "rgb(253, 234, 69)"], ["rgb(0, 32, 81)", "rgb(127, 124, 117)", "rgb(253, 234, 69)"], ["rgb(0, 32, 81)", "rgb(60, 77, 110)", "rgb(127, 124, 117)", "rgb(187, 175, 113)", "rgb(253, 234, 69)"], ["rgb(0, 32, 81)", "rgb(10, 50, 106)", "rgb(43, 68, 110)", "rgb(77, 86, 109)", "rgb(105, 105, 112)", "rgb(127, 124, 117)", "rgb(148, 143, 120)", "rgb(173, 164, 118)", "rgb(202, 186, 106)", "rgb(234, 209, 86)", "rgb(253, 234, 69)"], ["rgb(0, 32, 81)", "rgb(1, 43, 101)", "rgb(17, 54, 108)", "rgb(38, 66, 110)", "rgb(60, 77, 110)", "rgb(81, 88, 110)", "rgb(98, 100, 111)", "rgb(114, 112, 113)", "rgb(127, 124, 117)", "rgb(140, 136, 119)", "rgb(154, 148, 120)", "rgb(169, 161, 119)", "rgb(187, 175, 113)", "rgb(206, 189, 104)", "rgb(226, 203, 92)", "rgb(243, 218, 79)", "rgb(253, 234, 69)"], ["rgb(0, 32, 81)", "rgb(43, 68, 110)", "rgb(127, 124, 117)", "rgb(173, 164, 118)", "rgb(253, 234, 69)"]]); +}); + +it("scheme cubehelix", () => { + schemeTest("cubehelix", [["rgb(0, 0, 0)", "rgb(255, 255, 255)"], ["rgb(0, 0, 0)", "rgb(160, 121, 73)", "rgb(255, 255, 255)"], ["rgb(0, 0, 0)", "rgb(22, 83, 76)", "rgb(160, 121, 73)", "rgb(199, 179, 237)", "rgb(255, 255, 255)"], ["rgb(0, 0, 0)", "rgb(26, 21, 48)", "rgb(22, 61, 78)", "rgb(31, 102, 66)", "rgb(84, 121, 47)", "rgb(160, 121, 73)", "rgb(208, 126, 147)", "rgb(207, 156, 218)", "rgb(193, 202, 243)", "rgb(210, 238, 239)", "rgb(255, 255, 255)"], ["rgb(0, 0, 0)", "rgb(21, 11, 29)", "rgb(27, 29, 59)", "rgb(23, 55, 77)", "rgb(22, 83, 76)", "rgb(35, 106, 62)", "rgb(67, 119, 49)", "rgb(113, 123, 50)", "rgb(160, 121, 73)", "rgb(196, 122, 116)", "rgb(212, 131, 167)", "rgb(209, 151, 211)", "rgb(199, 179, 237)", "rgb(193, 207, 243)", "rgb(202, 231, 240)", "rgb(226, 246, 240)", "rgb(255, 255, 255)"], ["rgb(0, 0, 0)", "rgb(22, 61, 78)", "rgb(160, 121, 73)", "rgb(207, 156, 218)", "rgb(255, 255, 255)"]]); +}); + +it("scheme warm", () => { + schemeTest("warm", [["rgb(110, 64, 170)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(255, 94, 99)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(210, 62, 167)", "rgb(255, 94, 99)", "rgb(239, 167, 47)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(150, 61, 179)", "rgb(191, 60, 175)", "rgb(228, 65, 157)", "rgb(254, 75, 131)", "rgb(255, 94, 99)", "rgb(255, 120, 71)", "rgb(251, 150, 51)", "rgb(226, 183, 47)", "rgb(198, 214, 60)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(135, 62, 177)", "rgb(160, 61, 179)", "rgb(186, 60, 176)", "rgb(210, 62, 167)", "rgb(232, 66, 155)", "rgb(249, 72, 138)", "rgb(255, 81, 119)", "rgb(255, 94, 99)", "rgb(255, 109, 81)", "rgb(255, 127, 65)", "rgb(253, 146, 53)", "rgb(239, 167, 47)", "rgb(223, 187, 47)", "rgb(205, 207, 55)", "rgb(189, 225, 70)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(191, 60, 175)", "rgb(255, 94, 99)", "rgb(251, 150, 51)", "rgb(175, 240, 91)"]]); +}); + +it("scheme cool", () => { + schemeTest("cool", [["rgb(110, 64, 170)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(26, 199, 194)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(65, 125, 224)", "rgb(26, 199, 194)", "rgb(64, 243, 115)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(96, 84, 200)", "rgb(76, 110, 219)", "rgb(54, 140, 225)", "rgb(35, 171, 216)", "rgb(26, 199, 194)", "rgb(29, 223, 163)", "rgb(48, 239, 130)", "rgb(82, 246, 103)", "rgb(127, 246, 88)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(102, 76, 190)", "rgb(92, 90, 206)", "rgb(79, 107, 218)", "rgb(65, 125, 224)", "rgb(51, 144, 225)", "rgb(39, 163, 220)", "rgb(30, 182, 209)", "rgb(26, 199, 194)", "rgb(26, 215, 175)", "rgb(33, 227, 155)", "rgb(45, 237, 134)", "rgb(64, 243, 115)", "rgb(87, 246, 100)", "rgb(115, 246, 90)", "rgb(145, 244, 87)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(76, 110, 219)", "rgb(26, 199, 194)", "rgb(48, 239, 130)", "rgb(175, 240, 91)"]]); +}); + +it("scheme bugn", () => { + schemeTest("bugn", [["#e5f5f9", "#99d8c9", "#2ca25f"], ["#e5f5f9", "#99d8c9", "#2ca25f"], ["#edf8fb", "#b2e2e2", "#66c2a4", "#2ca25f", "#006d2c"], ["rgb(247, 252, 253)", "rgb(232, 246, 249)", "rgb(213, 239, 237)", "rgb(183, 228, 218)", "rgb(143, 211, 193)", "rgb(104, 194, 163)", "rgb(73, 177, 127)", "rgb(47, 153, 89)", "rgb(21, 127, 60)", "rgb(3, 100, 41)", "rgb(0, 68, 27)"], ["rgb(247, 252, 253)", "rgb(238, 248, 251)", "rgb(228, 245, 247)", "rgb(216, 240, 239)", "rgb(200, 234, 228)", "rgb(178, 226, 215)", "rgb(153, 216, 200)", "rgb(128, 205, 182)", "rgb(104, 194, 163)", "rgb(84, 184, 141)", "rgb(66, 172, 118)", "rgb(50, 156, 94)", "rgb(34, 140, 73)", "rgb(18, 124, 57)", "rgb(6, 107, 45)", "rgb(1, 88, 36)", "rgb(0, 68, 27)"], ["rgb(247, 252, 253)", "rgb(213, 239, 237)", "rgb(104, 194, 163)", "rgb(47, 153, 89)", "rgb(0, 68, 27)"]]); +}); + +it("scheme bupu", () => { + schemeTest("bupu", [["#e0ecf4", "#9ebcda", "#8856a7"], ["#e0ecf4", "#9ebcda", "#8856a7"], ["#edf8fb", "#b3cde3", "#8c96c6", "#8856a7", "#810f7c"], ["rgb(247, 252, 253)", "rgb(228, 238, 245)", "rgb(204, 221, 236)", "rgb(178, 202, 225)", "rgb(156, 179, 213)", "rgb(143, 149, 198)", "rgb(140, 116, 181)", "rgb(137, 82, 165)", "rgb(133, 45, 143)", "rgb(115, 15, 113)", "rgb(77, 0, 75)"], ["rgb(247, 252, 253)", "rgb(235, 244, 248)", "rgb(222, 235, 243)", "rgb(207, 223, 237)", "rgb(191, 211, 230)", "rgb(175, 199, 224)", "rgb(161, 186, 217)", "rgb(150, 169, 208)", "rgb(143, 149, 198)", "rgb(140, 128, 188)", "rgb(139, 107, 177)", "rgb(138, 86, 167)", "rgb(136, 64, 155)", "rgb(132, 41, 140)", "rgb(122, 21, 121)", "rgb(102, 8, 99)", "rgb(77, 0, 75)"], ["rgb(247, 252, 253)", "rgb(204, 221, 236)", "rgb(143, 149, 198)", "rgb(137, 82, 165)", "rgb(77, 0, 75)"]]); +}); + +it("scheme gnbu", () => { + schemeTest("gnbu", [["#e0f3db", "#a8ddb5", "#43a2ca"], ["#e0f3db", "#a8ddb5", "#43a2ca"], ["#f0f9e8", "#bae4bc", "#7bccc4", "#43a2ca", "#0868ac"], ["rgb(247, 252, 240)", "rgb(229, 245, 223)", "rgb(211, 238, 206)", "rgb(189, 229, 191)", "rgb(158, 217, 187)", "rgb(123, 203, 196)", "rgb(88, 183, 205)", "rgb(57, 156, 198)", "rgb(29, 126, 183)", "rgb(11, 96, 161)", "rgb(8, 64, 129)"], ["rgb(247, 252, 240)", "rgb(236, 248, 229)", "rgb(225, 243, 219)", "rgb(214, 239, 208)", "rgb(201, 234, 198)", "rgb(185, 228, 190)", "rgb(167, 221, 186)", "rgb(145, 212, 189)", "rgb(123, 203, 196)", "rgb(101, 191, 203)", "rgb(80, 177, 205)", "rgb(61, 159, 200)", "rgb(43, 141, 191)", "rgb(26, 122, 181)", "rgb(14, 103, 168)", "rgb(9, 84, 150)", "rgb(8, 64, 129)"], ["rgb(247, 252, 240)", "rgb(211, 238, 206)", "rgb(123, 203, 196)", "rgb(57, 156, 198)", "rgb(8, 64, 129)"]]); +}); + +it("scheme orrd", () => { + schemeTest("orrd", [["#fee8c8", "#fdbb84", "#e34a33"], ["#fee8c8", "#fdbb84", "#e34a33"], ["#fef0d9", "#fdcc8a", "#fc8d59", "#e34a33", "#b30000"], ["rgb(255, 247, 236)", "rgb(254, 235, 207)", "rgb(253, 220, 175)", "rgb(253, 202, 148)", "rgb(253, 176, 122)", "rgb(250, 142, 93)", "rgb(241, 108, 73)", "rgb(224, 69, 48)", "rgb(200, 29, 19)", "rgb(167, 4, 3)", "rgb(127, 0, 0)"], ["rgb(255, 247, 236)", "rgb(255, 239, 218)", "rgb(254, 231, 199)", "rgb(254, 222, 179)", "rgb(253, 211, 161)", "rgb(253, 199, 145)", "rgb(253, 184, 129)", "rgb(252, 164, 111)", "rgb(250, 142, 93)", "rgb(245, 121, 81)", "rgb(237, 99, 68)", "rgb(227, 74, 51)", "rgb(213, 49, 33)", "rgb(196, 25, 16)", "rgb(176, 8, 5)", "rgb(153, 1, 1)", "rgb(127, 0, 0)"], ["rgb(255, 247, 236)", "rgb(253, 220, 175)", "rgb(250, 142, 93)", "rgb(224, 69, 48)", "rgb(127, 0, 0)"]]); +}); + +it("scheme pubu", () => { + schemeTest("pubu", [["#ece7f2", "#a6bddb", "#2b8cbe"], ["#ece7f2", "#a6bddb", "#2b8cbe"], ["#f1eef6", "#bdc9e1", "#74a9cf", "#2b8cbe", "#045a8d"], ["rgb(255, 247, 251)", "rgb(239, 234, 244)", "rgb(219, 218, 235)", "rgb(191, 201, 226)", "rgb(155, 185, 217)", "rgb(114, 168, 207)", "rgb(67, 148, 195)", "rgb(26, 125, 182)", "rgb(6, 103, 161)", "rgb(4, 82, 129)", "rgb(2, 56, 88)"], ["rgb(255, 247, 251)", "rgb(245, 239, 246)", "rgb(235, 230, 242)", "rgb(222, 220, 236)", "rgb(206, 209, 230)", "rgb(187, 199, 225)", "rgb(165, 189, 219)", "rgb(141, 179, 213)", "rgb(114, 168, 207)", "rgb(85, 156, 199)", "rgb(56, 143, 192)", "rgb(31, 128, 184)", "rgb(13, 114, 173)", "rgb(5, 101, 158)", "rgb(4, 88, 138)", "rgb(3, 73, 114)", "rgb(2, 56, 88)"], ["rgb(255, 247, 251)", "rgb(219, 218, 235)", "rgb(114, 168, 207)", "rgb(26, 125, 182)", "rgb(2, 56, 88)"]]); +}); + +it("scheme pubugn", () => { + schemeTest("pubugn", [["#ece2f0", "#a6bddb", "#1c9099"], ["#ece2f0", "#a6bddb", "#1c9099"], ["#f6eff7", "#bdc9e1", "#67a9cf", "#1c9099", "#016c59"], ["rgb(255, 247, 251)", "rgb(239, 231, 242)", "rgb(219, 216, 234)", "rgb(190, 201, 226)", "rgb(152, 185, 217)", "rgb(105, 168, 207)", "rgb(64, 150, 192)", "rgb(25, 135, 159)", "rgb(3, 120, 119)", "rgb(1, 99, 83)", "rgb(1, 70, 54)"], ["rgb(255, 247, 251)", "rgb(245, 237, 246)", "rgb(235, 227, 240)", "rgb(222, 218, 235)", "rgb(206, 209, 230)", "rgb(186, 199, 224)", "rgb(163, 189, 219)", "rgb(134, 179, 213)", "rgb(105, 168, 207)", "rgb(79, 157, 199)", "rgb(54, 146, 186)", "rgb(29, 137, 164)", "rgb(11, 128, 139)", "rgb(3, 118, 114)", "rgb(1, 105, 91)", "rgb(1, 89, 72)", "rgb(1, 70, 54)"], ["rgb(255, 247, 251)", "rgb(219, 216, 234)", "rgb(105, 168, 207)", "rgb(25, 135, 159)", "rgb(1, 70, 54)"]]); +}); + +it("scheme purd", () => { + schemeTest("purd", [["#e7e1ef", "#c994c7", "#dd1c77"], ["#e7e1ef", "#c994c7", "#dd1c77"], ["#f1eef6", "#d7b5d8", "#df65b0", "#dd1c77", "#980043"], ["rgb(247, 244, 249)", "rgb(234, 227, 240)", "rgb(220, 201, 226)", "rgb(208, 170, 210)", "rgb(208, 138, 194)", "rgb(221, 99, 174)", "rgb(227, 56, 144)", "rgb(215, 28, 108)", "rgb(183, 11, 79)", "rgb(143, 2, 58)", "rgb(103, 0, 31)"], ["rgb(247, 244, 249)", "rgb(239, 234, 244)", "rgb(231, 222, 237)", "rgb(222, 205, 228)", "rgb(213, 186, 218)", "rgb(207, 166, 208)", "rgb(207, 146, 198)", "rgb(212, 124, 187)", "rgb(221, 99, 174)", "rgb(226, 72, 156)", "rgb(226, 47, 136)", "rgb(217, 30, 112)", "rgb(201, 19, 92)", "rgb(179, 9, 77)", "rgb(153, 3, 64)", "rgb(128, 0, 49)", "rgb(103, 0, 31)"], ["rgb(247, 244, 249)", "rgb(220, 201, 226)", "rgb(221, 99, 174)", "rgb(215, 28, 108)", "rgb(103, 0, 31)"]]); +}); + +it("scheme rdpu", () => { + schemeTest("rdpu", [["#fde0dd", "#fa9fb5", "#c51b8a"], ["#fde0dd", "#fa9fb5", "#c51b8a"], ["#feebe2", "#fbb4b9", "#f768a1", "#c51b8a", "#7a0177"], ["rgb(255, 247, 243)", "rgb(253, 228, 225)", "rgb(252, 207, 204)", "rgb(251, 181, 188)", "rgb(249, 147, 176)", "rgb(243, 105, 163)", "rgb(224, 62, 152)", "rgb(192, 23, 136)", "rgb(153, 3, 124)", "rgb(112, 1, 116)", "rgb(73, 0, 106)"], ["rgb(255, 247, 243)", "rgb(254, 235, 232)", "rgb(253, 223, 220)", "rgb(253, 210, 207)", "rgb(252, 195, 195)", "rgb(251, 177, 187)", "rgb(250, 156, 180)", "rgb(248, 131, 171)", "rgb(243, 105, 163)", "rgb(233, 78, 156)", "rgb(218, 52, 149)", "rgb(197, 28, 139)", "rgb(173, 10, 129)", "rgb(148, 2, 123)", "rgb(123, 1, 118)", "rgb(98, 0, 112)", "rgb(73, 0, 106)"], ["rgb(255, 247, 243)", "rgb(252, 207, 204)", "rgb(243, 105, 163)", "rgb(192, 23, 136)", "rgb(73, 0, 106)"]]); +}); + +it("scheme ylgn", () => { + schemeTest("ylgn", [["#f7fcb9", "#addd8e", "#31a354"], ["#f7fcb9", "#addd8e", "#31a354"], ["#ffffcc", "#c2e699", "#78c679", "#31a354", "#006837"], ["rgb(255, 255, 229)", "rgb(247, 252, 196)", "rgb(228, 244, 172)", "rgb(199, 232, 155)", "rgb(162, 216, 138)", "rgb(120, 197, 120)", "rgb(78, 175, 99)", "rgb(47, 148, 78)", "rgb(21, 121, 63)", "rgb(3, 96, 52)", "rgb(0, 69, 41)"], ["rgb(255, 255, 229)", "rgb(251, 253, 207)", "rgb(243, 251, 189)", "rgb(231, 246, 174)", "rgb(215, 239, 163)", "rgb(195, 230, 153)", "rgb(172, 220, 142)", "rgb(146, 209, 131)", "rgb(120, 197, 120)", "rgb(93, 184, 107)", "rgb(69, 169, 93)", "rgb(50, 151, 80)", "rgb(34, 134, 69)", "rgb(18, 118, 61)", "rgb(6, 103, 55)", "rgb(1, 86, 48)", "rgb(0, 69, 41)"], ["rgb(255, 255, 229)", "rgb(228, 244, 172)", "rgb(120, 197, 120)", "rgb(47, 148, 78)", "rgb(0, 69, 41)"]]); +}); + +it("scheme ylgnbu", () => { + schemeTest("ylgnbu", [["#edf8b1", "#7fcdbb", "#2c7fb8"], ["#edf8b1", "#7fcdbb", "#2c7fb8"], ["#ffffcc", "#a1dab4", "#41b6c4", "#2c7fb8", "#253494"], ["rgb(255, 255, 217)", "rgb(239, 249, 189)", "rgb(213, 238, 179)", "rgb(169, 221, 183)", "rgb(115, 201, 189)", "rgb(69, 180, 194)", "rgb(40, 151, 191)", "rgb(32, 115, 178)", "rgb(35, 78, 160)", "rgb(28, 49, 133)", "rgb(8, 29, 88)"], ["rgb(255, 255, 217)", "rgb(246, 251, 198)", "rgb(234, 247, 184)", "rgb(217, 240, 179)", "rgb(193, 231, 181)", "rgb(163, 219, 184)", "rgb(129, 206, 187)", "rgb(97, 193, 191)", "rgb(69, 180, 194)", "rgb(48, 163, 193)", "rgb(36, 143, 189)", "rgb(32, 119, 180)", "rgb(34, 96, 169)", "rgb(35, 74, 157)", "rgb(32, 55, 141)", "rgb(22, 41, 117)", "rgb(8, 29, 88)"], ["rgb(255, 255, 217)", "rgb(213, 238, 179)", "rgb(69, 180, 194)", "rgb(32, 115, 178)", "rgb(8, 29, 88)"]]); +}); + +it("scheme ylorbr", () => { + schemeTest("ylorbr", [["#fff7bc", "#fec44f", "#d95f0e"], ["#fff7bc", "#fec44f", "#d95f0e"], ["#ffffd4", "#fed98e", "#fe9929", "#d95f0e", "#993404"], ["rgb(255, 255, 229)", "rgb(255, 248, 196)", "rgb(254, 234, 161)", "rgb(254, 214, 118)", "rgb(254, 186, 74)", "rgb(251, 153, 44)", "rgb(238, 121, 24)", "rgb(216, 91, 10)", "rgb(183, 67, 4)", "rgb(143, 50, 4)", "rgb(102, 37, 6)"], ["rgb(255, 255, 229)", "rgb(255, 251, 208)", "rgb(255, 245, 188)", "rgb(255, 237, 166)", "rgb(254, 225, 141)", "rgb(254, 211, 112)", "rgb(254, 194, 84)", "rgb(254, 174, 61)", "rgb(251, 153, 44)", "rgb(244, 133, 31)", "rgb(234, 113, 21)", "rgb(219, 94, 11)", "rgb(201, 78, 5)", "rgb(178, 64, 3)", "rgb(153, 54, 4)", "rgb(128, 45, 5)", "rgb(102, 37, 6)"], ["rgb(255, 255, 229)", "rgb(254, 234, 161)", "rgb(251, 153, 44)", "rgb(216, 91, 10)", "rgb(102, 37, 6)"]]); +}); + +it("scheme ylorrd", () => { + schemeTest("ylorrd", [["#ffeda0", "#feb24c", "#f03b20"], ["#ffeda0", "#feb24c", "#f03b20"], ["#ffffb2", "#fecc5c", "#fd8d3c", "#f03b20", "#bd0026"], ["rgb(255, 255, 204)", "rgb(255, 240, 169)", "rgb(254, 224, 135)", "rgb(254, 201, 101)", "rgb(254, 171, 75)", "rgb(253, 137, 60)", "rgb(250, 92, 46)", "rgb(236, 48, 35)", "rgb(211, 17, 33)", "rgb(175, 2, 37)", "rgb(128, 0, 38)"], ["rgb(255, 255, 204)", "rgb(255, 246, 182)", "rgb(255, 237, 160)", "rgb(255, 227, 139)", "rgb(254, 214, 118)", "rgb(254, 197, 98)", "rgb(254, 178, 80)", "rgb(253, 159, 69)", "rgb(253, 137, 60)", "rgb(252, 109, 51)", "rgb(248, 80, 43)", "rgb(239, 53, 36)", "rgb(225, 30, 32)", "rgb(207, 14, 33)", "rgb(185, 4, 36)", "rgb(158, 1, 38)", "rgb(128, 0, 38)"], ["rgb(255, 255, 204)", "rgb(254, 224, 135)", "rgb(253, 137, 60)", "rgb(236, 48, 35)", "rgb(128, 0, 38)"]]); +}); + +it("scheme rainbow", () => { + schemeTest("rainbow", [["rgb(110, 64, 170)", "rgb(175, 240, 91)"], ["rgb(110, 64, 170)", "rgb(255, 140, 56)", "rgb(40, 234, 141)"], ["rgb(110, 64, 170)", "rgb(254, 75, 131)", "rgb(226, 183, 47)", "rgb(82, 246, 103)", "rgb(35, 171, 216)"], ["rgb(110, 64, 170)", "rgb(184, 60, 176)", "rgb(246, 71, 141)", "rgb(255, 105, 86)", "rgb(245, 159, 48)", "rgb(196, 217, 62)", "rgb(131, 245, 87)", "rgb(56, 241, 122)", "rgb(25, 211, 181)", "rgb(41, 160, 221)", "rgb(80, 105, 217)"], ["rgb(110, 64, 170)", "rgb(157, 61, 179)", "rgb(205, 61, 170)", "rgb(243, 69, 144)", "rgb(255, 88, 109)", "rgb(255, 116, 74)", "rgb(249, 152, 50)", "rgb(219, 191, 48)", "rgb(188, 226, 71)", "rgb(147, 244, 87)", "rgb(92, 246, 98)", "rgb(50, 239, 128)", "rgb(28, 220, 167)", "rgb(27, 191, 202)", "rgb(43, 156, 222)", "rgb(68, 121, 223)", "rgb(93, 89, 204)"], ["rgb(110, 64, 170)", "rgb(254, 75, 131)", "rgb(175, 240, 91)", "rgb(29, 223, 163)", "rgb(110, 64, 170)"]]); +}); + +it("scheme sinebow", () => { + schemeTest("sinebow", [["rgb(255, 64, 64)", "rgb(0, 191, 191)"], ["rgb(255, 64, 64)", "rgb(64, 255, 64)", "rgb(64, 64, 255)"], ["rgb(255, 64, 64)", "rgb(167, 213, 3)", "rgb(24, 244, 114)", "rgb(24, 114, 244)", "rgb(167, 3, 213)"], ["rgb(255, 64, 64)", "rgb(235, 134, 14)", "rgb(180, 201, 1)", "rgb(109, 246, 27)", "rgb(44, 253, 86)", "rgb(5, 220, 158)", "rgb(5, 158, 220)", "rgb(44, 86, 253)", "rgb(109, 27, 246)", "rgb(180, 1, 201)", "rgb(235, 14, 134)"], ["rgb(255, 64, 64)", "rgb(246, 108, 28)", "rgb(222, 155, 6)", "rgb(184, 198, 0)", "rgb(139, 232, 12)", "rgb(93, 251, 39)", "rgb(51, 254, 78)", "rgb(19, 240, 124)", "rgb(2, 210, 170)", "rgb(2, 170, 210)", "rgb(19, 124, 240)", "rgb(51, 78, 254)", "rgb(93, 39, 251)", "rgb(139, 12, 232)", "rgb(184, 0, 198)", "rgb(222, 6, 155)", "rgb(246, 28, 108)"], ["rgb(255, 64, 64)", "rgb(167, 213, 3)", "rgb(0, 191, 191)", "rgb(88, 42, 252)", "rgb(255, 64, 64)"]]); +}); + +function schemeTest(scheme, [r2, r3, r5, r11, r17, r]) { + const o2 = Plot.plot({color: {scheme, type: "ordinal", domain: "AB"}}).scale("color"); + const o3 = Plot.plot({color: {scheme, type: "ordinal", domain: "ABC"}}).scale("color"); + const o5 = Plot.plot({color: {scheme, type: "ordinal", domain: "ABCDE"}}).scale("color"); + const o11 = Plot.plot({color: {scheme, type: "ordinal", domain: "ABCDEFGHIJK"}}).scale("color"); + const o17 = Plot.plot({color: {scheme, type: "ordinal", domain: "ABCDEFGHIJKLMNOPQ"}}).scale("color"); + assert.deepStrictEqual(o2.range, r2); + assert.deepStrictEqual(o3.range, r3); + assert.deepStrictEqual(o5.range, r5); + assert.deepStrictEqual(o11.range, r11); + assert.deepStrictEqual(o17.range, r17); + if (r != null) { + const c = Plot.plot({color: {scheme, type: "linear"}}).scale("color"); + assert.deepStrictEqual([0, .2, .5, .7, 1].map(c.apply), r); + } +}