import { color } from '@csstools/css-color-parser';
import assert from 'node:assert';
import { parse } from '../util/parse.mjs';
import { serialize_sRGB_data } from '../util/serialize.mjs';

const tests = [
	['transparent', 'rgba(0, 0, 0, 0)', 'Should parse to completely transparent'],
	['TransParent', 'rgba(0, 0, 0, 0)', 'Should parse to completely transparent'],
	['black', 'rgb(0, 0, 0)', 'Should parse as correct value'],
	['white', 'rgb(255, 255, 255)', 'Should parse as correct value'],
	['fuchsia', 'rgb(255, 0, 255)', 'Should parse as correct value'],
	['cyan', 'rgb(0, 255, 255)', 'Should parse as correct value'],
	['CyAn', 'rgb(0, 255, 255)', 'Should parse as cyan'],

	['transparent', 'rgba(0, 0, 0, 0)', 'Keyword should parse properly'],
	['TRANSPARENT', 'rgba(0, 0, 0, 0)', 'Keywords should be case-insensitive'],
	['transparent', 'rgba(0, 0, 0, 0)', 'Code point should parse'],
	['aliceblue', 'rgb(240, 248, 255)', 'Keyword should parse properly'],
	['ALICEBLUE', 'rgb(240, 248, 255)', 'Keywords should be case-insensitive'],
	['aliceblue', 'rgb(240, 248, 255)', 'Code point should parse'],
	['antiquewhite', 'rgb(250, 235, 215)', 'Keyword should parse properly'],
	['ANTIQUEWHITE', 'rgb(250, 235, 215)', 'Keywords should be case-insensitive'],
	['antiquewhite', 'rgb(250, 235, 215)', 'Code point should parse'],
	['aqua', 'rgb(0, 255, 255)', 'Keyword should parse properly'],
	['AQUA', 'rgb(0, 255, 255)', 'Keywords should be case-insensitive'],
	['aqua', 'rgb(0, 255, 255)', 'Code point should parse'],
	['aquamarine', 'rgb(127, 255, 212)', 'Keyword should parse properly'],
	['AQUAMARINE', 'rgb(127, 255, 212)', 'Keywords should be case-insensitive'],
	['aquamarine', 'rgb(127, 255, 212)', 'Code point should parse'],
	['azure', 'rgb(240, 255, 255)', 'Keyword should parse properly'],
	['AZURE', 'rgb(240, 255, 255)', 'Keywords should be case-insensitive'],
	['azure', 'rgb(240, 255, 255)', 'Code point should parse'],
	['beige', 'rgb(245, 245, 220)', 'Keyword should parse properly'],
	['BEIGE', 'rgb(245, 245, 220)', 'Keywords should be case-insensitive'],
	['beige', 'rgb(245, 245, 220)', 'Code point should parse'],
	['bisque', 'rgb(255, 228, 196)', 'Keyword should parse properly'],
	['BISQUE', 'rgb(255, 228, 196)', 'Keywords should be case-insensitive'],
	['bisque', 'rgb(255, 228, 196)', 'Code point should parse'],
	['black', 'rgb(0, 0, 0)', 'Keyword should parse properly'],
	['BLACK', 'rgb(0, 0, 0)', 'Keywords should be case-insensitive'],
	['black', 'rgb(0, 0, 0)', 'Code point should parse'],
	['blanchedalmond', 'rgb(255, 235, 205)', 'Keyword should parse properly'],
	['BLANCHEDALMOND', 'rgb(255, 235, 205)', 'Keywords should be case-insensitive'],
	['blanchedalmond', 'rgb(255, 235, 205)', 'Code point should parse'],
	['blue', 'rgb(0, 0, 255)', 'Keyword should parse properly'],
	['BLUE', 'rgb(0, 0, 255)', 'Keywords should be case-insensitive'],
	['blue', 'rgb(0, 0, 255)', 'Code point should parse'],
	['blueviolet', 'rgb(138, 43, 226)', 'Keyword should parse properly'],
	['BLUEVIOLET', 'rgb(138, 43, 226)', 'Keywords should be case-insensitive'],
	['blueviolet', 'rgb(138, 43, 226)', 'Code point should parse'],
	['brown', 'rgb(165, 42, 42)', 'Keyword should parse properly'],
	['BROWN', 'rgb(165, 42, 42)', 'Keywords should be case-insensitive'],
	['brown', 'rgb(165, 42, 42)', 'Code point should parse'],
	['burlywood', 'rgb(222, 184, 135)', 'Keyword should parse properly'],
	['BURLYWOOD', 'rgb(222, 184, 135)', 'Keywords should be case-insensitive'],
	['burlywood', 'rgb(222, 184, 135)', 'Code point should parse'],
	['cadetblue', 'rgb(95, 158, 160)', 'Keyword should parse properly'],
	['CADETBLUE', 'rgb(95, 158, 160)', 'Keywords should be case-insensitive'],
	['cadetblue', 'rgb(95, 158, 160)', 'Code point should parse'],
	['chartreuse', 'rgb(127, 255, 0)', 'Keyword should parse properly'],
	['CHARTREUSE', 'rgb(127, 255, 0)', 'Keywords should be case-insensitive'],
	['chartreuse', 'rgb(127, 255, 0)', 'Code point should parse'],
	['chocolate', 'rgb(210, 105, 30)', 'Keyword should parse properly'],
	['CHOCOLATE', 'rgb(210, 105, 30)', 'Keywords should be case-insensitive'],
	['chocolate', 'rgb(210, 105, 30)', 'Code point should parse'],
	['coral', 'rgb(255, 127, 80)', 'Keyword should parse properly'],
	['CORAL', 'rgb(255, 127, 80)', 'Keywords should be case-insensitive'],
	['coral', 'rgb(255, 127, 80)', 'Code point should parse'],
	['cornflowerblue', 'rgb(100, 149, 237)', 'Keyword should parse properly'],
	['CORNFLOWERBLUE', 'rgb(100, 149, 237)', 'Keywords should be case-insensitive'],
	['cornflowerblue', 'rgb(100, 149, 237)', 'Code point should parse'],
	['cornsilk', 'rgb(255, 248, 220)', 'Keyword should parse properly'],
	['CORNSILK', 'rgb(255, 248, 220)', 'Keywords should be case-insensitive'],
	['cornsilk', 'rgb(255, 248, 220)', 'Code point should parse'],
	['crimson', 'rgb(220, 20, 60)', 'Keyword should parse properly'],
	['CRIMSON', 'rgb(220, 20, 60)', 'Keywords should be case-insensitive'],
	['crimson', 'rgb(220, 20, 60)', 'Code point should parse'],
	['cyan', 'rgb(0, 255, 255)', 'Keyword should parse properly'],
	['CYAN', 'rgb(0, 255, 255)', 'Keywords should be case-insensitive'],
	['cyan', 'rgb(0, 255, 255)', 'Code point should parse'],
	['darkblue', 'rgb(0, 0, 139)', 'Keyword should parse properly'],
	['DARKBLUE', 'rgb(0, 0, 139)', 'Keywords should be case-insensitive'],
	['darkblue', 'rgb(0, 0, 139)', 'Code point should parse'],
	['darkcyan', 'rgb(0, 139, 139)', 'Keyword should parse properly'],
	['DARKCYAN', 'rgb(0, 139, 139)', 'Keywords should be case-insensitive'],
	['darkcyan', 'rgb(0, 139, 139)', 'Code point should parse'],
	['darkgoldenrod', 'rgb(184, 134, 11)', 'Keyword should parse properly'],
	['DARKGOLDENROD', 'rgb(184, 134, 11)', 'Keywords should be case-insensitive'],
	['darkgoldenrod', 'rgb(184, 134, 11)', 'Code point should parse'],
	['darkgray', 'rgb(169, 169, 169)', 'Keyword should parse properly'],
	['DARKGRAY', 'rgb(169, 169, 169)', 'Keywords should be case-insensitive'],
	['darkgray', 'rgb(169, 169, 169)', 'Code point should parse'],
	['darkgreen', 'rgb(0, 100, 0)', 'Keyword should parse properly'],
	['DARKGREEN', 'rgb(0, 100, 0)', 'Keywords should be case-insensitive'],
	['darkgreen', 'rgb(0, 100, 0)', 'Code point should parse'],
	['darkgrey', 'rgb(169, 169, 169)', 'Keyword should parse properly'],
	['DARKGREY', 'rgb(169, 169, 169)', 'Keywords should be case-insensitive'],
	['darkgrey', 'rgb(169, 169, 169)', 'Code point should parse'],
	['darkkhaki', 'rgb(189, 183, 107)', 'Keyword should parse properly'],
	['DARKKHAKI', 'rgb(189, 183, 107)', 'Keywords should be case-insensitive'],
	['darkkhaki', 'rgb(189, 183, 107)', 'Code point should parse'],
	['darkmagenta', 'rgb(139, 0, 139)', 'Keyword should parse properly'],
	['DARKMAGENTA', 'rgb(139, 0, 139)', 'Keywords should be case-insensitive'],
	['darkmagenta', 'rgb(139, 0, 139)', 'Code point should parse'],
	['darkolivegreen', 'rgb(85, 107, 47)', 'Keyword should parse properly'],
	['DARKOLIVEGREEN', 'rgb(85, 107, 47)', 'Keywords should be case-insensitive'],
	['darkolivegreen', 'rgb(85, 107, 47)', 'Code point should parse'],
	['darkorange', 'rgb(255, 140, 0)', 'Keyword should parse properly'],
	['DARKORANGE', 'rgb(255, 140, 0)', 'Keywords should be case-insensitive'],
	['darkorange', 'rgb(255, 140, 0)', 'Code point should parse'],
	['darkorchid', 'rgb(153, 50, 204)', 'Keyword should parse properly'],
	['DARKORCHID', 'rgb(153, 50, 204)', 'Keywords should be case-insensitive'],
	['darkorchid', 'rgb(153, 50, 204)', 'Code point should parse'],
	['darkred', 'rgb(139, 0, 0)', 'Keyword should parse properly'],
	['DARKRED', 'rgb(139, 0, 0)', 'Keywords should be case-insensitive'],
	['darkred', 'rgb(139, 0, 0)', 'Code point should parse'],
	['darksalmon', 'rgb(233, 150, 122)', 'Keyword should parse properly'],
	['DARKSALMON', 'rgb(233, 150, 122)', 'Keywords should be case-insensitive'],
	['darksalmon', 'rgb(233, 150, 122)', 'Code point should parse'],
	['darkseagreen', 'rgb(143, 188, 143)', 'Keyword should parse properly'],
	['DARKSEAGREEN', 'rgb(143, 188, 143)', 'Keywords should be case-insensitive'],
	['darkseagreen', 'rgb(143, 188, 143)', 'Code point should parse'],
	['darkslateblue', 'rgb(72, 61, 139)', 'Keyword should parse properly'],
	['DARKSLATEBLUE', 'rgb(72, 61, 139)', 'Keywords should be case-insensitive'],
	['darkslateblue', 'rgb(72, 61, 139)', 'Code point should parse'],
	['darkslategray', 'rgb(47, 79, 79)', 'Keyword should parse properly'],
	['DARKSLATEGRAY', 'rgb(47, 79, 79)', 'Keywords should be case-insensitive'],
	['darkslategray', 'rgb(47, 79, 79)', 'Code point should parse'],
	['darkslategrey', 'rgb(47, 79, 79)', 'Keyword should parse properly'],
	['DARKSLATEGREY', 'rgb(47, 79, 79)', 'Keywords should be case-insensitive'],
	['darkslategrey', 'rgb(47, 79, 79)', 'Code point should parse'],
	['darkturquoise', 'rgb(0, 206, 209)', 'Keyword should parse properly'],
	['DARKTURQUOISE', 'rgb(0, 206, 209)', 'Keywords should be case-insensitive'],
	['darkturquoise', 'rgb(0, 206, 209)', 'Code point should parse'],
	['darkviolet', 'rgb(148, 0, 211)', 'Keyword should parse properly'],
	['DARKVIOLET', 'rgb(148, 0, 211)', 'Keywords should be case-insensitive'],
	['darkviolet', 'rgb(148, 0, 211)', 'Code point should parse'],
	['deeppink', 'rgb(255, 20, 147)', 'Keyword should parse properly'],
	['DEEPPINK', 'rgb(255, 20, 147)', 'Keywords should be case-insensitive'],
	['deeppink', 'rgb(255, 20, 147)', 'Code point should parse'],
	['deepskyblue', 'rgb(0, 191, 255)', 'Keyword should parse properly'],
	['DEEPSKYBLUE', 'rgb(0, 191, 255)', 'Keywords should be case-insensitive'],
	['deepskyblue', 'rgb(0, 191, 255)', 'Code point should parse'],
	['dimgray', 'rgb(105, 105, 105)', 'Keyword should parse properly'],
	['DIMGRAY', 'rgb(105, 105, 105)', 'Keywords should be case-insensitive'],
	['dimgray', 'rgb(105, 105, 105)', 'Code point should parse'],
	['dimgrey', 'rgb(105, 105, 105)', 'Keyword should parse properly'],
	['DIMGREY', 'rgb(105, 105, 105)', 'Keywords should be case-insensitive'],
	['dimgrey', 'rgb(105, 105, 105)', 'Code point should parse'],
	['dodgerblue', 'rgb(30, 144, 255)', 'Keyword should parse properly'],
	['DODGERBLUE', 'rgb(30, 144, 255)', 'Keywords should be case-insensitive'],
	['dodgerblue', 'rgb(30, 144, 255)', 'Code point should parse'],
	['firebrick', 'rgb(178, 34, 34)', 'Keyword should parse properly'],
	['FIREBRICK', 'rgb(178, 34, 34)', 'Keywords should be case-insensitive'],
	['firebrick', 'rgb(178, 34, 34)', 'Code point should parse'],
	['floralwhite', 'rgb(255, 250, 240)', 'Keyword should parse properly'],
	['FLORALWHITE', 'rgb(255, 250, 240)', 'Keywords should be case-insensitive'],
	['floralwhite', 'rgb(255, 250, 240)', 'Code point should parse'],
	['forestgreen', 'rgb(34, 139, 34)', 'Keyword should parse properly'],
	['FORESTGREEN', 'rgb(34, 139, 34)', 'Keywords should be case-insensitive'],
	['forestgreen', 'rgb(34, 139, 34)', 'Code point should parse'],
	['fuchsia', 'rgb(255, 0, 255)', 'Keyword should parse properly'],
	['FUCHSIA', 'rgb(255, 0, 255)', 'Keywords should be case-insensitive'],
	['fuchsia', 'rgb(255, 0, 255)', 'Code point should parse'],
	['gainsboro', 'rgb(220, 220, 220)', 'Keyword should parse properly'],
	['GAINSBORO', 'rgb(220, 220, 220)', 'Keywords should be case-insensitive'],
	['gainsboro', 'rgb(220, 220, 220)', 'Code point should parse'],
	['ghostwhite', 'rgb(248, 248, 255)', 'Keyword should parse properly'],
	['GHOSTWHITE', 'rgb(248, 248, 255)', 'Keywords should be case-insensitive'],
	['ghostwhite', 'rgb(248, 248, 255)', 'Code point should parse'],
	['gold', 'rgb(255, 215, 0)', 'Keyword should parse properly'],
	['GOLD', 'rgb(255, 215, 0)', 'Keywords should be case-insensitive'],
	['gold', 'rgb(255, 215, 0)', 'Code point should parse'],
	['goldenrod', 'rgb(218, 165, 32)', 'Keyword should parse properly'],
	['GOLDENROD', 'rgb(218, 165, 32)', 'Keywords should be case-insensitive'],
	['goldenrod', 'rgb(218, 165, 32)', 'Code point should parse'],
	['gray', 'rgb(128, 128, 128)', 'Keyword should parse properly'],
	['GRAY', 'rgb(128, 128, 128)', 'Keywords should be case-insensitive'],
	['gray', 'rgb(128, 128, 128)', 'Code point should parse'],
	['green', 'rgb(0, 128, 0)', 'Keyword should parse properly'],
	['GREEN', 'rgb(0, 128, 0)', 'Keywords should be case-insensitive'],
	['green', 'rgb(0, 128, 0)', 'Code point should parse'],
	['greenyellow', 'rgb(173, 255, 47)', 'Keyword should parse properly'],
	['GREENYELLOW', 'rgb(173, 255, 47)', 'Keywords should be case-insensitive'],
	['greenyellow', 'rgb(173, 255, 47)', 'Code point should parse'],
	['grey', 'rgb(128, 128, 128)', 'Keyword should parse properly'],
	['GREY', 'rgb(128, 128, 128)', 'Keywords should be case-insensitive'],
	['grey', 'rgb(128, 128, 128)', 'Code point should parse'],
	['honeydew', 'rgb(240, 255, 240)', 'Keyword should parse properly'],
	['HONEYDEW', 'rgb(240, 255, 240)', 'Keywords should be case-insensitive'],
	['honeydew', 'rgb(240, 255, 240)', 'Code point should parse'],
	['hotpink', 'rgb(255, 105, 180)', 'Keyword should parse properly'],
	['HOTPINK', 'rgb(255, 105, 180)', 'Keywords should be case-insensitive'],
	['hotpink', 'rgb(255, 105, 180)', 'Code point should parse'],
	['indianred', 'rgb(205, 92, 92)', 'Keyword should parse properly'],
	['INDIANRED', 'rgb(205, 92, 92)', 'Keywords should be case-insensitive'],
	['indianred', 'rgb(205, 92, 92)', 'Code point should parse'],
	['indigo', 'rgb(75, 0, 130)', 'Keyword should parse properly'],
	['INDIGO', 'rgb(75, 0, 130)', 'Keywords should be case-insensitive'],
	['indigo', 'rgb(75, 0, 130)', 'Code point should parse'],
	['ivory', 'rgb(255, 255, 240)', 'Keyword should parse properly'],
	['IVORY', 'rgb(255, 255, 240)', 'Keywords should be case-insensitive'],
	['ivory', 'rgb(255, 255, 240)', 'Code point should parse'],
	['khaki', 'rgb(240, 230, 140)', 'Keyword should parse properly'],
	['KHAKI', 'rgb(240, 230, 140)', 'Keywords should be case-insensitive'],
	['khaki', 'rgb(240, 230, 140)', 'Code point should parse'],
	['lavender', 'rgb(230, 230, 250)', 'Keyword should parse properly'],
	['LAVENDER', 'rgb(230, 230, 250)', 'Keywords should be case-insensitive'],
	['lavender', 'rgb(230, 230, 250)', 'Code point should parse'],
	['lavenderblush', 'rgb(255, 240, 245)', 'Keyword should parse properly'],
	['LAVENDERBLUSH', 'rgb(255, 240, 245)', 'Keywords should be case-insensitive'],
	['lavenderblush', 'rgb(255, 240, 245)', 'Code point should parse'],
	['lawngreen', 'rgb(124, 252, 0)', 'Keyword should parse properly'],
	['LAWNGREEN', 'rgb(124, 252, 0)', 'Keywords should be case-insensitive'],
	['lawngreen', 'rgb(124, 252, 0)', 'Code point should parse'],
	['lemonchiffon', 'rgb(255, 250, 205)', 'Keyword should parse properly'],
	['LEMONCHIFFON', 'rgb(255, 250, 205)', 'Keywords should be case-insensitive'],
	['lemonchiffon', 'rgb(255, 250, 205)', 'Code point should parse'],
	['lightblue', 'rgb(173, 216, 230)', 'Keyword should parse properly'],
	['LIGHTBLUE', 'rgb(173, 216, 230)', 'Keywords should be case-insensitive'],
	['lightblue', 'rgb(173, 216, 230)', 'Code point should parse'],
	['lightcoral', 'rgb(240, 128, 128)', 'Keyword should parse properly'],
	['LIGHTCORAL', 'rgb(240, 128, 128)', 'Keywords should be case-insensitive'],
	['lightcoral', 'rgb(240, 128, 128)', 'Code point should parse'],
	['lightcyan', 'rgb(224, 255, 255)', 'Keyword should parse properly'],
	['LIGHTCYAN', 'rgb(224, 255, 255)', 'Keywords should be case-insensitive'],
	['lightcyan', 'rgb(224, 255, 255)', 'Code point should parse'],
	['lightgoldenrodyellow', 'rgb(250, 250, 210)', 'Keyword should parse properly'],
	['LIGHTGOLDENRODYELLOW', 'rgb(250, 250, 210)', 'Keywords should be case-insensitive'],
	['lightgoldenrodyellow', 'rgb(250, 250, 210)', 'Code point should parse'],
	['lightgray', 'rgb(211, 211, 211)', 'Keyword should parse properly'],
	['LIGHTGRAY', 'rgb(211, 211, 211)', 'Keywords should be case-insensitive'],
	['lightgray', 'rgb(211, 211, 211)', 'Code point should parse'],
	['lightgreen', 'rgb(144, 238, 144)', 'Keyword should parse properly'],
	['LIGHTGREEN', 'rgb(144, 238, 144)', 'Keywords should be case-insensitive'],
	['lightgreen', 'rgb(144, 238, 144)', 'Code point should parse'],
	['lightgrey', 'rgb(211, 211, 211)', 'Keyword should parse properly'],
	['LIGHTGREY', 'rgb(211, 211, 211)', 'Keywords should be case-insensitive'],
	['lightgrey', 'rgb(211, 211, 211)', 'Code point should parse'],
	['lightpink', 'rgb(255, 182, 193)', 'Keyword should parse properly'],
	['LIGHTPINK', 'rgb(255, 182, 193)', 'Keywords should be case-insensitive'],
	['lightpink', 'rgb(255, 182, 193)', 'Code point should parse'],
	['lightsalmon', 'rgb(255, 160, 122)', 'Keyword should parse properly'],
	['LIGHTSALMON', 'rgb(255, 160, 122)', 'Keywords should be case-insensitive'],
	['lightsalmon', 'rgb(255, 160, 122)', 'Code point should parse'],
	['lightseagreen', 'rgb(32, 178, 170)', 'Keyword should parse properly'],
	['LIGHTSEAGREEN', 'rgb(32, 178, 170)', 'Keywords should be case-insensitive'],
	['lightseagreen', 'rgb(32, 178, 170)', 'Code point should parse'],
	['lightskyblue', 'rgb(135, 206, 250)', 'Keyword should parse properly'],
	['LIGHTSKYBLUE', 'rgb(135, 206, 250)', 'Keywords should be case-insensitive'],
	['lightskyblue', 'rgb(135, 206, 250)', 'Code point should parse'],
	['lightslategray', 'rgb(119, 136, 153)', 'Keyword should parse properly'],
	['LIGHTSLATEGRAY', 'rgb(119, 136, 153)', 'Keywords should be case-insensitive'],
	['lightslategray', 'rgb(119, 136, 153)', 'Code point should parse'],
	['lightslategrey', 'rgb(119, 136, 153)', 'Keyword should parse properly'],
	['LIGHTSLATEGREY', 'rgb(119, 136, 153)', 'Keywords should be case-insensitive'],
	['lightslategrey', 'rgb(119, 136, 153)', 'Code point should parse'],
	['lightsteelblue', 'rgb(176, 196, 222)', 'Keyword should parse properly'],
	['LIGHTSTEELBLUE', 'rgb(176, 196, 222)', 'Keywords should be case-insensitive'],
	['lightsteelblue', 'rgb(176, 196, 222)', 'Code point should parse'],
	['lightyellow', 'rgb(255, 255, 224)', 'Keyword should parse properly'],
	['LIGHTYELLOW', 'rgb(255, 255, 224)', 'Keywords should be case-insensitive'],
	['lightyellow', 'rgb(255, 255, 224)', 'Code point should parse'],
	['lime', 'rgb(0, 255, 0)', 'Keyword should parse properly'],
	['LIME', 'rgb(0, 255, 0)', 'Keywords should be case-insensitive'],
	['lime', 'rgb(0, 255, 0)', 'Code point should parse'],
	['limegreen', 'rgb(50, 205, 50)', 'Keyword should parse properly'],
	['LIMEGREEN', 'rgb(50, 205, 50)', 'Keywords should be case-insensitive'],
	['limegreen', 'rgb(50, 205, 50)', 'Code point should parse'],
	['linen', 'rgb(250, 240, 230)', 'Keyword should parse properly'],
	['LINEN', 'rgb(250, 240, 230)', 'Keywords should be case-insensitive'],
	['linen', 'rgb(250, 240, 230)', 'Code point should parse'],
	['magenta', 'rgb(255, 0, 255)', 'Keyword should parse properly'],
	['MAGENTA', 'rgb(255, 0, 255)', 'Keywords should be case-insensitive'],
	['magenta', 'rgb(255, 0, 255)', 'Code point should parse'],
	['maroon', 'rgb(128, 0, 0)', 'Keyword should parse properly'],
	['MAROON', 'rgb(128, 0, 0)', 'Keywords should be case-insensitive'],
	['maroon', 'rgb(128, 0, 0)', 'Code point should parse'],
	['mediumaquamarine', 'rgb(102, 205, 170)', 'Keyword should parse properly'],
	['MEDIUMAQUAMARINE', 'rgb(102, 205, 170)', 'Keywords should be case-insensitive'],
	['mediumaquamarine', 'rgb(102, 205, 170)', 'Code point should parse'],
	['mediumblue', 'rgb(0, 0, 205)', 'Keyword should parse properly'],
	['MEDIUMBLUE', 'rgb(0, 0, 205)', 'Keywords should be case-insensitive'],
	['mediumblue', 'rgb(0, 0, 205)', 'Code point should parse'],
	['mediumorchid', 'rgb(186, 85, 211)', 'Keyword should parse properly'],
	['MEDIUMORCHID', 'rgb(186, 85, 211)', 'Keywords should be case-insensitive'],
	['mediumorchid', 'rgb(186, 85, 211)', 'Code point should parse'],
	['mediumpurple', 'rgb(147, 112, 219)', 'Keyword should parse properly'],
	['MEDIUMPURPLE', 'rgb(147, 112, 219)', 'Keywords should be case-insensitive'],
	['mediumpurple', 'rgb(147, 112, 219)', 'Code point should parse'],
	['mediumseagreen', 'rgb(60, 179, 113)', 'Keyword should parse properly'],
	['MEDIUMSEAGREEN', 'rgb(60, 179, 113)', 'Keywords should be case-insensitive'],
	['mediumseagreen', 'rgb(60, 179, 113)', 'Code point should parse'],
	['mediumslateblue', 'rgb(123, 104, 238)', 'Keyword should parse properly'],
	['MEDIUMSLATEBLUE', 'rgb(123, 104, 238)', 'Keywords should be case-insensitive'],
	['mediumslateblue', 'rgb(123, 104, 238)', 'Code point should parse'],
	['mediumspringgreen', 'rgb(0, 250, 154)', 'Keyword should parse properly'],
	['MEDIUMSPRINGGREEN', 'rgb(0, 250, 154)', 'Keywords should be case-insensitive'],
	['mediumspringgreen', 'rgb(0, 250, 154)', 'Code point should parse'],
	['mediumturquoise', 'rgb(72, 209, 204)', 'Keyword should parse properly'],
	['MEDIUMTURQUOISE', 'rgb(72, 209, 204)', 'Keywords should be case-insensitive'],
	['mediumturquoise', 'rgb(72, 209, 204)', 'Code point should parse'],
	['mediumvioletred', 'rgb(199, 21, 133)', 'Keyword should parse properly'],
	['MEDIUMVIOLETRED', 'rgb(199, 21, 133)', 'Keywords should be case-insensitive'],
	['mediumvioletred', 'rgb(199, 21, 133)', 'Code point should parse'],
	['midnightblue', 'rgb(25, 25, 112)', 'Keyword should parse properly'],
	['MIDNIGHTBLUE', 'rgb(25, 25, 112)', 'Keywords should be case-insensitive'],
	['midnightblue', 'rgb(25, 25, 112)', 'Code point should parse'],
	['mintcream', 'rgb(245, 255, 250)', 'Keyword should parse properly'],
	['MINTCREAM', 'rgb(245, 255, 250)', 'Keywords should be case-insensitive'],
	['mintcream', 'rgb(245, 255, 250)', 'Code point should parse'],
	['mistyrose', 'rgb(255, 228, 225)', 'Keyword should parse properly'],
	['MISTYROSE', 'rgb(255, 228, 225)', 'Keywords should be case-insensitive'],
	['mistyrose', 'rgb(255, 228, 225)', 'Code point should parse'],
	['moccasin', 'rgb(255, 228, 181)', 'Keyword should parse properly'],
	['MOCCASIN', 'rgb(255, 228, 181)', 'Keywords should be case-insensitive'],
	['moccasin', 'rgb(255, 228, 181)', 'Code point should parse'],
	['navajowhite', 'rgb(255, 222, 173)', 'Keyword should parse properly'],
	['NAVAJOWHITE', 'rgb(255, 222, 173)', 'Keywords should be case-insensitive'],
	['navajowhite', 'rgb(255, 222, 173)', 'Code point should parse'],
	['navy', 'rgb(0, 0, 128)', 'Keyword should parse properly'],
	['NAVY', 'rgb(0, 0, 128)', 'Keywords should be case-insensitive'],
	['navy', 'rgb(0, 0, 128)', 'Code point should parse'],
	['oldlace', 'rgb(253, 245, 230)', 'Keyword should parse properly'],
	['OLDLACE', 'rgb(253, 245, 230)', 'Keywords should be case-insensitive'],
	['oldlace', 'rgb(253, 245, 230)', 'Code point should parse'],
	['olive', 'rgb(128, 128, 0)', 'Keyword should parse properly'],
	['OLIVE', 'rgb(128, 128, 0)', 'Keywords should be case-insensitive'],
	['olive', 'rgb(128, 128, 0)', 'Code point should parse'],
	['olivedrab', 'rgb(107, 142, 35)', 'Keyword should parse properly'],
	['OLIVEDRAB', 'rgb(107, 142, 35)', 'Keywords should be case-insensitive'],
	['olivedrab', 'rgb(107, 142, 35)', 'Code point should parse'],
	['orange', 'rgb(255, 165, 0)', 'Keyword should parse properly'],
	['ORANGE', 'rgb(255, 165, 0)', 'Keywords should be case-insensitive'],
	['orange', 'rgb(255, 165, 0)', 'Code point should parse'],
	['orangered', 'rgb(255, 69, 0)', 'Keyword should parse properly'],
	['ORANGERED', 'rgb(255, 69, 0)', 'Keywords should be case-insensitive'],
	['orangered', 'rgb(255, 69, 0)', 'Code point should parse'],
	['orchid', 'rgb(218, 112, 214)', 'Keyword should parse properly'],
	['ORCHID', 'rgb(218, 112, 214)', 'Keywords should be case-insensitive'],
	['orchid', 'rgb(218, 112, 214)', 'Code point should parse'],
	['palegoldenrod', 'rgb(238, 232, 170)', 'Keyword should parse properly'],
	['PALEGOLDENROD', 'rgb(238, 232, 170)', 'Keywords should be case-insensitive'],
	['palegoldenrod', 'rgb(238, 232, 170)', 'Code point should parse'],
	['palegreen', 'rgb(152, 251, 152)', 'Keyword should parse properly'],
	['PALEGREEN', 'rgb(152, 251, 152)', 'Keywords should be case-insensitive'],
	['palegreen', 'rgb(152, 251, 152)', 'Code point should parse'],
	['paleturquoise', 'rgb(175, 238, 238)', 'Keyword should parse properly'],
	['PALETURQUOISE', 'rgb(175, 238, 238)', 'Keywords should be case-insensitive'],
	['paleturquoise', 'rgb(175, 238, 238)', 'Code point should parse'],
	['palevioletred', 'rgb(219, 112, 147)', 'Keyword should parse properly'],
	['PALEVIOLETRED', 'rgb(219, 112, 147)', 'Keywords should be case-insensitive'],
	['palevioletred', 'rgb(219, 112, 147)', 'Code point should parse'],
	['papayawhip', 'rgb(255, 239, 213)', 'Keyword should parse properly'],
	['PAPAYAWHIP', 'rgb(255, 239, 213)', 'Keywords should be case-insensitive'],
	['papayawhip', 'rgb(255, 239, 213)', 'Code point should parse'],
	['peachpuff', 'rgb(255, 218, 185)', 'Keyword should parse properly'],
	['PEACHPUFF', 'rgb(255, 218, 185)', 'Keywords should be case-insensitive'],
	['peachpuff', 'rgb(255, 218, 185)', 'Code point should parse'],
	['peru', 'rgb(205, 133, 63)', 'Keyword should parse properly'],
	['PERU', 'rgb(205, 133, 63)', 'Keywords should be case-insensitive'],
	['peru', 'rgb(205, 133, 63)', 'Code point should parse'],
	['pink', 'rgb(255, 192, 203)', 'Keyword should parse properly'],
	['PINK', 'rgb(255, 192, 203)', 'Keywords should be case-insensitive'],
	['pink', 'rgb(255, 192, 203)', 'Code point should parse'],
	['plum', 'rgb(221, 160, 221)', 'Keyword should parse properly'],
	['PLUM', 'rgb(221, 160, 221)', 'Keywords should be case-insensitive'],
	['plum', 'rgb(221, 160, 221)', 'Code point should parse'],
	['powderblue', 'rgb(176, 224, 230)', 'Keyword should parse properly'],
	['POWDERBLUE', 'rgb(176, 224, 230)', 'Keywords should be case-insensitive'],
	['powderblue', 'rgb(176, 224, 230)', 'Code point should parse'],
	['purple', 'rgb(128, 0, 128)', 'Keyword should parse properly'],
	['PURPLE', 'rgb(128, 0, 128)', 'Keywords should be case-insensitive'],
	['purple', 'rgb(128, 0, 128)', 'Code point should parse'],
	['red', 'rgb(255, 0, 0)', 'Keyword should parse properly'],
	['RED', 'rgb(255, 0, 0)', 'Keywords should be case-insensitive'],
	['red', 'rgb(255, 0, 0)', 'Code point should parse'],
	['rosybrown', 'rgb(188, 143, 143)', 'Keyword should parse properly'],
	['ROSYBROWN', 'rgb(188, 143, 143)', 'Keywords should be case-insensitive'],
	['rosybrown', 'rgb(188, 143, 143)', 'Code point should parse'],
	['royalblue', 'rgb(65, 105, 225)', 'Keyword should parse properly'],
	['ROYALBLUE', 'rgb(65, 105, 225)', 'Keywords should be case-insensitive'],
	['royalblue', 'rgb(65, 105, 225)', 'Code point should parse'],
	['saddlebrown', 'rgb(139, 69, 19)', 'Keyword should parse properly'],
	['SADDLEBROWN', 'rgb(139, 69, 19)', 'Keywords should be case-insensitive'],
	['saddlebrown', 'rgb(139, 69, 19)', 'Code point should parse'],
	['salmon', 'rgb(250, 128, 114)', 'Keyword should parse properly'],
	['SALMON', 'rgb(250, 128, 114)', 'Keywords should be case-insensitive'],
	['salmon', 'rgb(250, 128, 114)', 'Code point should parse'],
	['sandybrown', 'rgb(244, 164, 96)', 'Keyword should parse properly'],
	['SANDYBROWN', 'rgb(244, 164, 96)', 'Keywords should be case-insensitive'],
	['sandybrown', 'rgb(244, 164, 96)', 'Code point should parse'],
	['seagreen', 'rgb(46, 139, 87)', 'Keyword should parse properly'],
	['SEAGREEN', 'rgb(46, 139, 87)', 'Keywords should be case-insensitive'],
	['seagreen', 'rgb(46, 139, 87)', 'Code point should parse'],
	['seashell', 'rgb(255, 245, 238)', 'Keyword should parse properly'],
	['SEASHELL', 'rgb(255, 245, 238)', 'Keywords should be case-insensitive'],
	['seashell', 'rgb(255, 245, 238)', 'Code point should parse'],
	['sienna', 'rgb(160, 82, 45)', 'Keyword should parse properly'],
	['SIENNA', 'rgb(160, 82, 45)', 'Keywords should be case-insensitive'],
	['sienna', 'rgb(160, 82, 45)', 'Code point should parse'],
	['silver', 'rgb(192, 192, 192)', 'Keyword should parse properly'],
	['SILVER', 'rgb(192, 192, 192)', 'Keywords should be case-insensitive'],
	['silver', 'rgb(192, 192, 192)', 'Code point should parse'],
	['skyblue', 'rgb(135, 206, 235)', 'Keyword should parse properly'],
	['SKYBLUE', 'rgb(135, 206, 235)', 'Keywords should be case-insensitive'],
	['skyblue', 'rgb(135, 206, 235)', 'Code point should parse'],
	['slateblue', 'rgb(106, 90, 205)', 'Keyword should parse properly'],
	['SLATEBLUE', 'rgb(106, 90, 205)', 'Keywords should be case-insensitive'],
	['slateblue', 'rgb(106, 90, 205)', 'Code point should parse'],
	['slategray', 'rgb(112, 128, 144)', 'Keyword should parse properly'],
	['SLATEGRAY', 'rgb(112, 128, 144)', 'Keywords should be case-insensitive'],
	['slategray', 'rgb(112, 128, 144)', 'Code point should parse'],
	['slategrey', 'rgb(112, 128, 144)', 'Keyword should parse properly'],
	['SLATEGREY', 'rgb(112, 128, 144)', 'Keywords should be case-insensitive'],
	['slategrey', 'rgb(112, 128, 144)', 'Code point should parse'],
	['snow', 'rgb(255, 250, 250)', 'Keyword should parse properly'],
	['SNOW', 'rgb(255, 250, 250)', 'Keywords should be case-insensitive'],
	['snow', 'rgb(255, 250, 250)', 'Code point should parse'],
	['springgreen', 'rgb(0, 255, 127)', 'Keyword should parse properly'],
	['SPRINGGREEN', 'rgb(0, 255, 127)', 'Keywords should be case-insensitive'],
	['springgreen', 'rgb(0, 255, 127)', 'Code point should parse'],
	['steelblue', 'rgb(70, 130, 180)', 'Keyword should parse properly'],
	['STEELBLUE', 'rgb(70, 130, 180)', 'Keywords should be case-insensitive'],
	['steelblue', 'rgb(70, 130, 180)', 'Code point should parse'],
	['tan', 'rgb(210, 180, 140)', 'Keyword should parse properly'],
	['TAN', 'rgb(210, 180, 140)', 'Keywords should be case-insensitive'],
	['tan', 'rgb(210, 180, 140)', 'Code point should parse'],
	['teal', 'rgb(0, 128, 128)', 'Keyword should parse properly'],
	['TEAL', 'rgb(0, 128, 128)', 'Keywords should be case-insensitive'],
	['teal', 'rgb(0, 128, 128)', 'Code point should parse'],
	['thistle', 'rgb(216, 191, 216)', 'Keyword should parse properly'],
	['THISTLE', 'rgb(216, 191, 216)', 'Keywords should be case-insensitive'],
	['thistle', 'rgb(216, 191, 216)', 'Code point should parse'],
	['tomato', 'rgb(255, 99, 71)', 'Keyword should parse properly'],
	['TOMATO', 'rgb(255, 99, 71)', 'Keywords should be case-insensitive'],
	['tomato', 'rgb(255, 99, 71)', 'Code point should parse'],
	['turquoise', 'rgb(64, 224, 208)', 'Keyword should parse properly'],
	['TURQUOISE', 'rgb(64, 224, 208)', 'Keywords should be case-insensitive'],
	['turquoise', 'rgb(64, 224, 208)', 'Code point should parse'],
	['violet', 'rgb(238, 130, 238)', 'Keyword should parse properly'],
	['VIOLET', 'rgb(238, 130, 238)', 'Keywords should be case-insensitive'],
	['violet', 'rgb(238, 130, 238)', 'Code point should parse'],
	['wheat', 'rgb(245, 222, 179)', 'Keyword should parse properly'],
	['WHEAT', 'rgb(245, 222, 179)', 'Keywords should be case-insensitive'],
	['wheat', 'rgb(245, 222, 179)', 'Code point should parse'],
	['white', 'rgb(255, 255, 255)', 'Keyword should parse properly'],
	['WHITE', 'rgb(255, 255, 255)', 'Keywords should be case-insensitive'],
	['white', 'rgb(255, 255, 255)', 'Code point should parse'],
	['whitesmoke', 'rgb(245, 245, 245)', 'Keyword should parse properly'],
	['WHITESMOKE', 'rgb(245, 245, 245)', 'Keywords should be case-insensitive'],
	['whitesmoke', 'rgb(245, 245, 245)', 'Code point should parse'],
	['yellow', 'rgb(255, 255, 0)', 'Keyword should parse properly'],
	['YELLOW', 'rgb(255, 255, 0)', 'Keywords should be case-insensitive'],
	['yellow', 'rgb(255, 255, 0)', 'Code point should parse'],
	['yellowgreen', 'rgb(154, 205, 50)', 'Keyword should parse properly'],
	['YELLOWGREEN', 'rgb(154, 205, 50)', 'Keywords should be case-insensitive'],
	['yellowgreen', 'rgb(154, 205, 50)', 'Code point should parse'],
];

for (const test of tests) {
	assert.deepStrictEqual(
		serialize_sRGB_data(color(parse(test[0]))),
		test[1],
	);
}
