diff --git a/test/unit/math/Color.js b/test/unit/math/Color.js index 16a679fa40239ca987d0b895779ef5594588cadf..6e3ffa5fa53ae13313c53ec305ea6f81a57397bf 100644 --- a/test/unit/math/Color.js +++ b/test/unit/math/Color.js @@ -18,8 +18,174 @@ test( "copy", function(){ test( "setRGB", function(){ var c = new THREE.Color() - c.setRGB(0, 1, 2); + c.setRGB(0, 1, 1); ok( c.r == 0, "Red: " + c.r ); ok( c.g == 1, "Green: " + c.g ); ok( c.b == 1, "Blue: " + c.b ); }); + +test( "copyGammaToLinear", function(){ + var c = new THREE.Color(); + var c2 = new THREE.Color(); + c2.setRGB(2, 2, 2) + c.copyGammaToLinear(c2) + ok( c.r == 4, "Red c: " + c.r + " Red c2: " + c2.r); + ok( c.g == 4, "Green c: " + c.g + " Green c2: " + c2.g); + ok( c.b == 4, "Blue c: " + c.g + " Blue c2: " + c2.b); +}); + +test( "copyLinearToGamma", function(){ + var c = new THREE.Color(); + var c2 = new THREE.Color(); + c2.setRGB(4, 4, 4) + c.copyLinearToGamma(c2) + ok( c.r == 2, "Red c: " + c.r + " Red c2: " + c2.r); + ok( c.g == 2, "Green c: " + c.g + " Green c2: " + c2.g); + ok( c.b == 2, "Blue c: " + c.g + " Blue c2: " + c2.b); +}); + + +test( "convertGammaToLinear", function(){ + var c = new THREE.Color(); + c.setRGB(2, 2, 2) + c.convertGammaToLinear() + ok( c.r == 4, "Red: " + c.r ); + ok( c.g == 4, "Green: " + c.g ); + ok( c.b == 4, "Blue: " + c.b ); +}); + + +test( "convertLinearToGamma", function(){ + var c = new THREE.Color(); + c.setRGB(4, 4, 4) + c.convertLinearToGamma() + ok( c.r == 2, "Red: " + c.r ); + ok( c.g == 2, "Green: " + c.g ); + ok( c.b == 2, "Blue: " + c.b ); +}); + +test("setWithNum", function(){ + var c = new THREE.Color(); + c.set(0xFF0000); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + + +test( "setWithString", function(){ + var c = new THREE.Color(); + c.set('red'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + + +test( "clone", function(){ + var c = new THREE.Color('red'); + var c2 = c.clone(); + ok( c2.r == 1, "Red c: " + c.r + " Red c2: " + c2.r); + ok( c2.g == 0, "Green c: " + c.g + " Green c2: " + c2.g); + ok( c2.b == 0, "Blue c: " + c.g + " Blue c2: " + c2.b); +}); + +test( "lerpSelf", function(){ + var c = new THREE.Color(); + var c2 = new THREE.Color(); + c.setRGB(0, 0, 0); + c.lerpSelf(c2, 2); + ok( c.r == 2, "Red: " + c.r ); + ok( c.g == 2, "Green: " + c.g ); + ok( c.b == 2, "Blue: " + c.b ); + +}); + + +test( "setStyleRGBRed", function(){ + var c = new THREE.Color(); + c.setStyle('rgb(255,0,0)'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + +test( "setStyleRGBPercentRed", function(){ + var c = new THREE.Color(); + c.setStyle('rgb(100%,0%,0%)'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + +test( "setStyleHexRed", function(){ + var c = new THREE.Color(); + c.setStyle('#ff0000'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + +test( "setStyleHex2Red", function(){ + var c = new THREE.Color(); + c.setStyle('#f00'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + +test( "setStyleColorName", function(){ + var c = new THREE.Color(); + c.setStyle('red'); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + + +test( "getHex", function(){ + var c = new THREE.Color('red'); + var res = c.getHex(); + ok( res == 0xFF0000, "Hex: " + res ); +}); + +test( "setHex", function(){ + var c = new THREE.Color(); + c.setHex(0xFF0000); + ok( c.r == 1, "Red: " + c.r ); + ok( c.g == 0, "Green: " + c.g ); + ok( c.b == 0, "Blue: " + c.b ); +}); + +test( "getHexString", function(){ + var c = new THREE.Color('red'); + var res = c.getHexString(); + ok( res == 'ff0000', "Hex: " + res ); +}); + +test( "getStyle", function(){ + var c = new THREE.Color('red'); + var res = c.getStyle(); + ok( res == 'rgb(255,0,0)', "style: " + res ); +}); + +test( "getHSV", function(){ + var c = new THREE.Color('red'); + var hsv = c.getHSV(); + + ok( hsv.h == 0, "hue: " + hsv.h ); + ok( hsv.s == 1, "saturation: " + hsv.s ); + ok( hsv.v == 1, "value: " + hsv.v ); +}); + +test( "setHSV", function(){ + var c = new THREE.Color(); + c.setHSV(0, 1, 1); + var hsv = c.getHSV(); + ok( hsv.h == 0, "hue: " + hsv.h ); + ok( hsv.s == 1, "saturation: " + hsv.s ); + ok( hsv.v == 1, "value: " + hsv.v ); +}); + +// xxx todo more hsv tests +