{"ScriptPreparationCode":"var color = \u0027#FFFFFF\u0027;\r\nvar textColor = \u0027\u0027;","TestCases":[{"Name":"Regex","Code":"var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(color);\r\n\r\nif (result !== null) {\r\n var R = parseInt(result[1], 16);\r\n var G = parseInt(result[2], 16);\r\n var B = parseInt(result[3], 16);\r\n \r\n var luminance = (0.299 * R \u002B 0.587 * G \u002B 0.114 * B) / 255;\r\n \r\n if (luminance \u003E 0.5) {\r\n textColor = \u0027#000000\u0027;\r\n } else {\r\n textColor = \u0027#FFFFFF\u0027;\r\n }\r\n }","IsDeferred":false},{"Name":"Substring","Code":"if (color.slice(0, 1) === \u0027#\u0027) {\r\n color = color.slice(1);\r\n}\r\n\r\nvar R = parseInt(color.substring(0, 2), 16);\r\nvar G = parseInt(color.substring(2, 4), 16);\r\nvar B = parseInt(color.substring(4, 6), 16);\r\n\r\nif (R \u0026\u0026 G \u0026\u0026 B) {\r\n var yiq = (R * 299 \u002B G * 587 \u002B B * 114) / 1000;\r\n \r\n if (yiq \u003E= 128) {\r\n textColor = \u0027#000000\u0027;\r\n } else {\r\n textColor = \u0027#FFFFFF\u0027;\r\n }\r\n}","IsDeferred":false},{"Name":"Direct string manipulation","Code":"if (color.slice(0, 1) === \u0027#\u0027) {\r\n color = color.slice(1);\r\n}\r\n\r\nvar R = parseInt(color[0] \u002B color[1], 16);\r\nvar G = parseInt(color[2] \u002B color[3], 16);\r\nvar B = parseInt(color[4] \u002B color[5], 16);\r\n\r\nif (R \u0026\u0026 G \u0026\u0026 B) {\r\n var yiq = (R * 299 \u002B G * 587 \u002B B * 114) / 1000;\r\n \r\n if (yiq \u003E= 128) {\r\n textColor = \u0027#000000\u0027;\r\n } else {\r\n textColor = \u0027#FFFFFF\u0027;\r\n }\r\n}","IsDeferred":false}]}