diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/color/color_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/color/color_test.html | 661 |
1 files changed, 0 insertions, 661 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/color/color_test.html b/contexts/data/lib/closure-library/closure/goog/color/color_test.html deleted file mode 100644 index 873cfa8..0000000 --- a/contexts/data/lib/closure-library/closure/goog/color/color_test.html +++ /dev/null @@ -1,661 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2006 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>Closure Unit Tests - goog.color</title> -<script src="../base.js"></script> -<script> - goog.require('goog.array'); - goog.require('goog.color'); - goog.require('goog.color.names'); - goog.require('goog.testing.jsunit'); -</script> -</head> -<body> -<script> - -function testIsValidColor() { - var goodColors = ['#ffffff', '#ff7812', '#012345', '#Ff003D', '#3CA', - '(255, 26, 75)', 'RGB(2, 3, 4)', '(0,0,0)', 'white', - 'blue']; - var badColors = ['#xxxxxx', '8899000', 'not_color', '#1234567', 'fffffg', - '(2555,0,0)', '(1,2,3,4)', 'rgb(1,20,)', 'RGB(20,20,20,)', - 'omgwtfbbq']; - for (var i = 0; i < goodColors.length; i++) { - assertTrue(goodColors[i], goog.color.isValidColor(goodColors[i])); - } - for (var i = 0; i < badColors.length; i++) { - assertFalse(badColors[i], goog.color.isValidColor(badColors[i])); - } -} - - -function testIsValidHexColor() { - var goodHexColors = ['#ffffff', '#ff7812', '#012345', '#Ff003D', '#3CA']; - var badHexColors = ['#xxxxxx', '889900', 'not_color', '#1234567', 'fffffg']; - for (var i = 0; i < goodHexColors.length; i++) { - assertTrue(goodHexColors[i], goog.color.isValidHexColor_(goodHexColors[i])); - } - for (var i = 0; i < badHexColors.length; i++) { - assertFalse(badHexColors[i], goog.color.isValidHexColor_(badHexColors[i])); - } -} - - -function testIsValidRgbColor() { - var goodRgbColors = ['(255, 26, 75)', 'RGB(2, 3, 4)', '(0,0,0)', - 'rgb(255,255,255)']; - var badRgbColors = ['(2555,0,0)', '(1,2,3,4)', 'rgb(1,20,)', - 'RGB(20,20,20,)']; - for (var i = 0; i < goodRgbColors.length; i++) { - assertEquals(goodRgbColors[i], - goog.color.isValidRgbColor_(goodRgbColors[i]).length, 3); - } - for (var i = 0; i < badRgbColors.length; i++) { - assertEquals(badRgbColors[i], - goog.color.isValidRgbColor_(badRgbColors[i]).length, 0); - } -} - - -function testParse() { - var colors = ['rgb(15, 250, 77)', '(127, 127, 127)', '#ffeedd', '123456', - 'magenta']; - var parsed = goog.array.map(colors, goog.color.parse); - assertEquals('rgb', parsed[0].type); - assertEquals(goog.color.rgbToHex(15, 250, 77), parsed[0].hex); - assertEquals('rgb', parsed[1].type); - assertEquals(goog.color.rgbToHex(127, 127, 127), parsed[1].hex); - assertEquals('hex', parsed[2].type); - assertEquals('#ffeedd', parsed[2].hex); - assertEquals('hex', parsed[3].type); - assertEquals('#123456', parsed[3].hex); - assertEquals('named', parsed[4].type); - assertEquals('#ff00ff', parsed[4].hex); - - var badColors = ['rgb(01, 1, 23)', '(256, 256, 256)', '#ffeeddaa']; - for (var i = 0; i < badColors.length; i++) { - var e = assertThrows(goog.partial(goog.color.parse, badColors[i])); - assertContains('is not a valid color string', e.message); - } -} - - -function testHexToRgb() { - var testColors = [['#B0FF2D', [176, 255, 45]], - ['#b26e5f', [178, 110, 95]], - ['#66f', [102, 102, 255]]]; - - for (var i = 0; i < testColors.length; i++) { - var r = goog.color.hexToRgb(testColors[i][0]); - var t = testColors[i][1]; - - assertEquals('Red channel should match.', t[0], r[0]); - assertEquals('Green channel should match.', t[1], r[1]); - assertEquals('Blue channel should match.', t[2], r[2]); - } - - var badColors = ['', '#g00', 'some words']; - for (var i = 0; i < badColors.length; i++) { - var e = assertThrows(goog.partial(goog.color.hexToRgb, badColors[i])); - assertEquals("'" + badColors[i] + "' is not a valid hex color", e.message); - } -} - - -function testHexToRgbStyle() { - assertEquals('rgb(255,0,0)', goog.color.hexToRgbStyle(goog.color.names.red)); - assertEquals('rgb(206,206,206)', goog.color.hexToRgbStyle('#cecece')); - assertEquals('rgb(51,204,170)', goog.color.hexToRgbStyle('#3CA')); - var badHexColors = ['#1234', null, undefined, '#.1234567890']; - for (var i = 0; i < badHexColors.length; ++i) { - var badHexColor = badHexColors[i]; - var e = assertThrows(goog.partial(goog.color.hexToRgbStyle, badHexColor)); - assertEquals("'" + badHexColor + "' is not a valid hex color", e.message); - } -} - - -function testRgbToHex() { - assertEquals(goog.color.names.red, goog.color.rgbToHex(255, 0, 0)); - assertEquals('#af13ff', goog.color.rgbToHex(175, 19, 255)); - var badRgb = [[-1, -1, -1], [256, 0, 0], ['a', 'b', 'c'], [undefined, 5, 5]]; - for (var i = 0; i < badRgb.length; ++i) { - var e = assertThrows(goog.partial(goog.color.rgbArrayToHex, badRgb[i])); - assertContains('is not a valid RGB color', e.message); - } -} - - -function testRgbToHsl() { - var rgb = [255, 171, 32]; - var hsl = goog.color.rgbArrayToHsl(rgb); - assertEquals(37, hsl[0]); - assertTrue(1.0 - hsl[1] < 0.01); - assertTrue(hsl[2] - .5625 < 0.01); -} - - -function testHslToRgb() { - var hsl = [60, 0.5, 0.1]; - var rgb = goog.color.hslArrayToRgb(hsl); - assertEquals(38, rgb[0]); - assertEquals(38, rgb[1]); - assertEquals(13, rgb[2]); -} - - -// Tests accuracy of HSL to RGB conversion -function testHSLBidiToRGB() { - var DELTA = 1; - - var color = [ [100,56,200], - [255, 0, 0], - [0, 0, 255], - [0, 255, 0], - [255, 255, 255], - [0,0,0] ]; - - for (var i = 0; i < color.length; i++) { - colorConversionTestHelper( - function(color) { - return goog.color.rgbToHsl(color[0], color[1], color[2]); - }, - function(color) { - return goog.color.hslToRgb(color[0], color[1], color[2]); - }, - color[i], DELTA); - - colorConversionTestHelper( - function(color) { return goog.color.rgbArrayToHsl(color); }, - function(color) { return goog.color.hslArrayToRgb(color); }, - color[i], DELTA); - } -} - - -// Tests HSV to RGB conversion -function testHSVToRGB() { - var DELTA = 1; - - var color = [ [100,56,200], - [255, 0, 0], - [0, 0, 255], - [0, 255, 0], - [255, 255, 255], - [0,0,0]]; - - for (var i = 0; i < color.length; i++) { - colorConversionTestHelper( - function(color) { - return goog.color.rgbToHsv(color[0], color[1], color[2]); - }, - function(color) { - return goog.color.hsvToRgb(color[0], color[1], color[2]); - }, - color[i], DELTA); - - colorConversionTestHelper( - function(color) { return goog.color.rgbArrayToHsv(color); }, - function(color) { return goog.color.hsvArrayToRgb(color); }, - color[i], DELTA); - } -} - -// Tests that HSV space is (0-360) for hue -function testHSVSpecRangeIsCorrect() { - var color = [0,0,255]; // Blue is in the middle of hue range - - var hsv = goog.color.rgbToHsv(color[0], color[1], color[2]); - - assertTrue("H in HSV space looks like it's not 0-360", hsv[0] > 1); -} - -// Tests conversion between HSL and Hex -function testHslToHex() { - var DELTA = 1; - - var color = [ [0,0,0], - [20, 0.5, 0.5], - [0,0,1], - [255,.45,.76] ]; - - for (var i = 0; i < color.length; i++) { - colorConversionTestHelper( - function(hsl) { return goog.color.hslToHex(hsl[0], hsl[1], hsl[2]); }, - function(hex) { return goog.color.hexToHsl(hex); }, - color[i], DELTA); - - colorConversionTestHelper( - function(hsl) { return goog.color.hslArrayToHex(hsl); }, - function(hex) { return goog.color.hexToHsl(hex); }, - color[i], DELTA); - } -} - -// Tests conversion between HSV and Hex -function testHsvToHex() { - var DELTA = 1; - - var color = [ [0,0,0], - [.5, 0.5, 155], - [0,0,255], - [.7,.45,21]]; - - for (var i = 0; i < color.length; i++) { - colorConversionTestHelper( - function(hsl) { return goog.color.hsvToHex(hsl[0], hsl[1], hsl[2]); }, - function(hex) { return goog.color.hexToHsv(hex); }, - color[i], DELTA); - - colorConversionTestHelper( - function(hsl) { return goog.color.hsvArrayToHex(hsl); }, - function(hex) { return goog.color.hexToHsv(hex); }, - color[i], DELTA); - } -} - -/** - * This helper method compares two RGB colors, checking that each color - * component is the same. - * @param {Array.<number>} rgb1 Color represented by a 3-element array with - * red, green, and blue values respectively, in the range [0, 255]. - * @param {Array.<number>} rgb2 Color represented by a 3-element array with - * red, green, and blue values respectively, in the range [0, 255]. - * @returns {boolean} True if the colors are the same, false otherwise. - */ -function rgbColorsAreEqual(rgb1, rgb2) { - return (rgb1[0] == rgb2[0] && - rgb1[1] == rgb2[1] && - rgb1[2] == rgb2[2]); -} - -/** - * This method runs unit tests against goog.color.blend(). Test cases include: - * blending arbitrary colors with factors of 0 and 1, blending the same colors - * using arbitrary factors, blending different colors of varying factors, - * and blending colors using factors outside the expected range. - */ -function testColorBlend() { - // Define some RGB colors for our tests. - var black = [0, 0, 0]; - var blue = [0, 0, 255]; - var gray = [128, 128, 128]; - var green = [0, 255, 0]; - var purple = [128, 0, 128]; - var red = [255, 0, 0]; - var yellow = [255, 255, 0]; - var white = [255, 255, 255]; - - // Blend arbitrary colors, using 0 and 1 for factors. Using 0 should return - // the first color, while using 1 should return the second color. - var redWithNoGreen = goog.color.blend(red, green, 1); - assertTrue('red + 0 * green = red', - rgbColorsAreEqual(red, redWithNoGreen)); - var whiteWithAllBlue = goog.color.blend(white, blue, 0); - assertTrue('white + 1 * blue = blue', - rgbColorsAreEqual(blue, whiteWithAllBlue)); - - // Blend the same colors using arbitrary factors. This should return the - // same colors. - var greenWithGreen = goog.color.blend(green, green, .25); - assertTrue('green + .25 * green = green', - rgbColorsAreEqual(green, greenWithGreen)); - - // Blend different colors using varying factors. - var blackWithWhite = goog.color.blend(black, white, .5); - assertTrue('black + .5 * white = gray', - rgbColorsAreEqual(gray, blackWithWhite)); - var redAndBlue = goog.color.blend(red, blue, .5); - assertTrue('red + .5 * blue = purple', - rgbColorsAreEqual(purple, redAndBlue)); - var lightGreen = goog.color.blend(green, white, .75); - assertTrue('green + .25 * white = a lighter shade of white', - lightGreen[0] > 0 && - lightGreen[1] == 255 && - lightGreen[2] > 0); - - // Blend arbitrary colors using factors outside the expected range. - var noGreenAllPurple = goog.color.blend(green, purple, -0.5); - assertTrue('green * -0.5 + purple = purple.', - rgbColorsAreEqual(purple, noGreenAllPurple)); - var allBlueNoYellow = goog.color.blend(blue, yellow, 1.37); - assertTrue('blue * 1.37 + yellow = blue.', - rgbColorsAreEqual(blue, allBlueNoYellow)); -} - -/** - * This method runs unit tests against goog.color.darken(). Test cases - * include darkening black with arbitrary factors, edge cases (using 0 and 1), - * darkening colors using various factors, and darkening colors using factors - * outside the expected range. - */ -function testColorDarken() { - // Define some RGB colors - var black = [0, 0, 0]; - var green = [0, 255, 0]; - var darkGray = [68, 68, 68]; - var olive = [128, 128, 0]; - var purple = [128, 0, 128]; - var white = [255, 255, 255]; - - // Darken black by an arbitrary factor, which should still return black. - var darkBlack = goog.color.darken(black, .63); - assertTrue('black darkened by .63 is still black.', - rgbColorsAreEqual(black, darkBlack)); - - // Call darken() with edge-case factors (0 and 1). - var greenNotDarkened = goog.color.darken(green, 0); - assertTrue('green darkened by 0 is still green.', - rgbColorsAreEqual(green, greenNotDarkened)); - var whiteFullyDarkened = goog.color.darken(white, 1); - assertTrue('white darkened by 1 is black.', - rgbColorsAreEqual(black, whiteFullyDarkened)); - - // Call darken() with various colors and factors. The result should be - // a color with less luminance. - var whiteHsl = goog.color.rgbToHsl(white[0], - white[1], - white[2]); - var whiteDarkened = goog.color.darken(white, .43); - var whiteDarkenedHsl = goog.color.rgbToHsl(whiteDarkened[0], - whiteDarkened[1], - whiteDarkened[2]); - assertTrue('White that\'s darkened has less luminance than white.', - whiteDarkenedHsl[2] < whiteHsl[2]); - var purpleHsl = goog.color.rgbToHsl(purple[0], - purple[1], - purple[2]); - var purpleDarkened = goog.color.darken(purple, .1); - var purpleDarkenedHsl = goog.color.rgbToHsl(purpleDarkened[0], - purpleDarkened[1], - purpleDarkened[2]); - assertTrue('Purple that\'s darkened has less luminance than purple.', - purpleDarkenedHsl[2] < purpleHsl[2]); - - // Call darken() with factors outside the expected range. - var darkGrayTurnedBlack = goog.color.darken(darkGray, 2.1); - assertTrue('Darkening dark gray by 2.1 returns black.', - rgbColorsAreEqual(black, darkGrayTurnedBlack)); - var whiteNotDarkened = goog.color.darken(white, -0.62); - assertTrue('Darkening white by -0.62 returns white.', - rgbColorsAreEqual(white, whiteNotDarkened)); -} - -/** - * This method runs unit tests against goog.color.lighten(). Test cases - * include lightening white with arbitrary factors, edge cases (using 0 and 1), - * lightening colors using various factors, and lightening colors using factors - * outside the expected range. - */ -function testColorLighten() { - // Define some RGB colors - var black = [0, 0, 0]; - var brown = [165, 42, 42]; - var navy = [0, 0, 128]; - var orange = [255, 165, 0]; - var white = [255, 255, 255]; - - // Lighten white by an arbitrary factor, which should still return white. - var lightWhite = goog.color.lighten(white, .41); - assertTrue('white lightened by .41 is still white.', - rgbColorsAreEqual(white, lightWhite)); - - // Call lighten() with edge-case factors(0 and 1). - var navyNotLightened = goog.color.lighten(navy, 0); - assertTrue('navy lightened by 0 is still navy.', - rgbColorsAreEqual(navy, navyNotLightened)); - var orangeFullyLightened = goog.color.lighten(orange, 1); - assertTrue('orange lightened by 1 is white.', - rgbColorsAreEqual(white, orangeFullyLightened)); - - // Call lighten() with various colors and factors. The result should be - // a color with greater luminance. - var blackHsl = goog.color.rgbToHsl(black[0], - black[1], - black[2]); - var blackLightened = goog.color.lighten(black, .33); - var blackLightenedHsl = goog.color.rgbToHsl(blackLightened[0], - blackLightened[1], - blackLightened[2]); - assertTrue('Black that\'s lightened has more luminance than black.', - blackLightenedHsl[2] >= blackHsl[2]); - var orangeHsl = goog.color.rgbToHsl(orange[0], - orange[1], - orange[2]); - var orangeLightened = goog.color.lighten(orange, .91); - var orangeLightenedHsl = goog.color.rgbToHsl(orangeLightened[0], - orangeLightened[1], - orangeLightened[2]); - assertTrue('Orange that\'s lightened has more luminance than orange.', - orangeLightenedHsl[2] >= orangeHsl[2]); - - // Call lighten() with factors outside the expected range. - var navyTurnedWhite = goog.color.lighten(navy, 1.01); - assertTrue('Lightening navy by 1.01 returns white.', - rgbColorsAreEqual(white, navyTurnedWhite)); - var brownNotLightened = goog.color.lighten(brown, -0.0000001); - assertTrue('Lightening brown by -0.0000001 returns brown.', - rgbColorsAreEqual(brown, brownNotLightened)); -} - -/** - * This method runs unit tests against goog.color.hslDistance(). - */ -function testHslDistance() { - // Define some HSL colors - var aliceBlueHsl = goog.color.rgbToHsl(240, 248, 255); - var blackHsl = goog.color.rgbToHsl(0, 0, 0); - var ghostWhiteHsl = goog.color.rgbToHsl(248, 248, 255); - var navyHsl = goog.color.rgbToHsl(0, 0, 128); - var redHsl = goog.color.rgbToHsl(255, 0, 0); - var whiteHsl = goog.color.rgbToHsl(255, 255, 255); - - // The distance between the same colors should be 0. - assertTrue('There is no HSL distance between white and white.', - goog.color.hslDistance(whiteHsl, whiteHsl) == 0); - assertTrue('There is no HSL distance between red and red.', - goog.color.hslDistance(redHsl, redHsl) == 0); - - // The distance between various colors should be within certain thresholds. - var hslDistance = goog.color.hslDistance(whiteHsl, ghostWhiteHsl); - assertTrue('The HSL distance between white and ghost white is > 0.', - hslDistance > 0); - assertTrue('The HSL distance between white and ghost white is <= 0.02.', - hslDistance <= 0.02); - hslDistance = goog.color.hslDistance(whiteHsl, redHsl); - assertTrue('The HSL distance betwen white and red is > 0.02.', - hslDistance > 0.02); - hslDistance = goog.color.hslDistance(navyHsl, aliceBlueHsl); - assertTrue('The HSL distance between navy and alice blue is > 0.02.', - hslDistance > 0.02); - hslDistance = goog.color.hslDistance(blackHsl, whiteHsl); - assertTrue('The HSL distance between white and black is 1.', - hslDistance == 1); -} - -/** - * This method runs unit tests against goog.color.yiqBrightness_(). - */ -function testYiqBrightness() { - var white = [255, 255, 255]; - var black = [0, 0, 0]; - var coral = [255, 127, 80]; - var lightgreen = [144, 238, 144]; - - var whiteBrightness = goog.color.yiqBrightness_(white); - var blackBrightness = goog.color.yiqBrightness_(black); - var coralBrightness = goog.color.yiqBrightness_(coral); - var lightgreenBrightness = goog.color.yiqBrightness_(lightgreen); - - // brightness should be a number - assertTrue('White brightness is a number.', - typeof whiteBrightness == 'number'); - assertTrue('Coral brightness is a number.', - typeof coralBrightness == 'number'); - - // brightness for known colors should match known values - assertEquals('White brightness is 255', whiteBrightness, 255); - assertEquals('Black brightness is 0', blackBrightness, 0); - assertEquals('Coral brightness is 160', coralBrightness, 160); - assertEquals('Lightgreen brightness is 199', lightgreenBrightness, 199); -} - -/** - * This method runs unit tests against goog.color.yiqBrightnessDiff_(). - */ -function testYiqBrightnessDiff() { - var colors = { - 'deeppink': [255, 20, 147], - 'indigo': [75, 0, 130], - 'saddlebrown': [139, 69, 19] - } - - var diffs = new Object(); - for(name1 in colors) { - for(name2 in colors) { - diffs[name1 + '-' + name2] = - goog.color.yiqBrightnessDiff_(colors[name1],colors[name2]); - } - } - - for(pair in diffs) { - // each brightness diff should be a number - assertTrue(pair + ' diff is a number.', typeof diffs[pair] == 'number'); - // each brightness diff should be greater than or equal to 0 - assertTrue(pair + ' diff is greater than or equal to 0.', diffs[pair] >= 0); - } - - // brightness diff for same-color pairs should be 0 - assertEquals('deeppink-deeppink is 0.', diffs['deeppink-deeppink'], 0); - assertEquals('indigo-indigo is 0.', diffs['indigo-indigo'], 0); - - // brightness diff for known pairs should match known values - assertEquals('deeppink-indigo is 68.', diffs['deeppink-indigo'], 68); - assertEquals('saddlebrown-deeppink is 21.', - diffs['saddlebrown-deeppink'], 21); - - // reversed pairs should have equal values - assertEquals('indigo-saddlebrown is 47.', diffs['indigo-saddlebrown'], 47); - assertEquals('saddlebrown-indigo is also 47.', - diffs['saddlebrown-indigo'], 47); -} - -/** - * This method runs unit tests against goog.color.colorDiff_(). - */ -function testColorDiff() { - var colors = { - 'mediumblue': [0, 0, 205], - 'oldlace': [253, 245, 230], - 'orchid': [218, 112, 214] - } - - var diffs = new Object(); - for(name1 in colors) { - for(name2 in colors) { - diffs[name1 + '-' + name2] = - goog.color.colorDiff_(colors[name1], colors[name2]); - } - } - - for(pair in diffs) { - // each color diff should be a number - assertTrue(pair + ' diff is a number.', typeof diffs[pair] == 'number'); - // each color diff should be greater than or equal to 0 - assertTrue(pair + ' diff is greater than or equal to 0.', diffs[pair] >= 0); - } - - // color diff for same-color pairs should be 0 - assertEquals('mediumblue-mediumblue is 0.', - diffs['mediumblue-mediumblue'], 0); - assertEquals('oldlace-oldlace is 0.', diffs['oldlace-oldlace'], 0); - - // color diff for known pairs should match known values - assertEquals('mediumblue-oldlace is 523.', diffs['mediumblue-oldlace'], 523); - assertEquals('oldlace-orchid is 184.', diffs['oldlace-orchid'], 184); - - // reversed pairs should have equal values - assertEquals('orchid-mediumblue is 339.', diffs['orchid-mediumblue'], 339); - assertEquals('mediumblue-orchid is also 339.', - diffs['mediumblue-orchid'], 339); -} - -/** - * This method runs unit tests against goog.color.highContrast(). - */ -function testHighContrast() { - white = [255, 255, 255]; - black = [0, 0, 0]; - lemonchiffron = [255, 250, 205]; - sienna = [160, 82, 45]; - - var suggestion = goog.color.highContrast( - black, [white, black, sienna, lemonchiffron]); - - // should return an array of three numbers - assertTrue('Return value is an array.', typeof suggestion == 'object'); - assertTrue('Return value is 3 long.', suggestion.length == 3); - - // known color combos should return a known (i.e. human-verified) suggestion - assertArrayEquals('White is best on sienna.', - goog.color.highContrast( - sienna, [white, black, sienna, lemonchiffron]), white); - assertArrayEquals('Black is best on lemonchiffron.', - goog.color.highContrast( - white, [white, black, sienna, lemonchiffron]), black); -} - -/** - * Helper function for color conversion functions between two colorspaces. - * @param {Function} funcOne Function that converts from 1st colorspace to 2nd - * @param {Function} funcTwo Function that converts from 2nd colorspace to 2nd - * @param {Array.<number>} color The color array passed to funcOne - * @param {number} DELTA Margin of error for each element in color - */ -function colorConversionTestHelper(funcOne, funcTwo, color, DELTA) { - - var temp = funcOne(color); - - if (!goog.color.isValidHexColor_(temp)) { - assertTrue("First conversion had a NaN: " + temp, !isNaN(temp[0])); - assertTrue("First conversion had a NaN: " + temp, !isNaN(temp[1])); - assertTrue("First conversion had a NaN: " + temp, !isNaN(temp[2])); - } - - var back = funcTwo(temp); - - if (!goog.color.isValidHexColor_(temp)) { - assertTrue("Second conversion had a NaN: " + back, !isNaN(back[0])); - assertTrue("Second conversion had a NaN: " + back, !isNaN(back[1])); - assertTrue("Second conversion had a NaN: " + back, !isNaN(back[2])); - } - - assertColorFuzzyEquals("Color was off", color, back, DELTA); -} - -/** - * Checks equivalence between two colors' respective values. Accepts +- delta - * for each pair of values - * @param {string} Str - * @param {Array.<number>} expected - * @param {Array.<number>} actual - * @param {number} delta Margin of error for each element in color array - */ -function assertColorFuzzyEquals(str, expected, actual, delta) { - assertTrue(str + " Expected: " + expected + " and got: " + actual + - " w/ delta: " + delta, - (Math.abs(expected[0] - actual[0]) <= delta) && - (Math.abs(expected[1] - actual[1]) <= delta) && - (Math.abs(expected[2] - actual[2]) <= delta)); -} - -</script> -</body> -</html> |