Playing around with Color conversions, I've found out that conversion
from RGB to HSB and back to RGB not yield in the same result. Should
it not? Probably because the HSB values should be float. Anyhow, I've
written this JSSpec test to easily see what's wrong.



  describe('Color conversions vice-versa', {

    'Conversion from RGB to HSB to RGB should not change': function ()
{
      var color = new Color([10, 11, 12], 'rgb');
      value_of(new Color(color.hsb, 'hsb').rgb).should_be([10, 11,
12]);
    },

    'Conversion from HSB to RGB to HSB should not change': function ()
{
      var color = new Color([210, 17, 5], 'hsb');
      value_of(new Color(color.rgb, 'rgb').hsb).should_be([210, 17,
5]);
    },


    'Conversion from RGB to HEX to RGB should not change': function ()
{
      var color = new Color([10, 11, 12], 'rgb');
      value_of(new Color(color.hex).rgb).should_be([10, 11, 12]);
    },

    'Conversion from HEX to RGB to HEX should not change': function ()
{
      var color = new Color('0A0B0C');
      value_of(new Color(color.rgb, 'rgb').hex).should_be('#0a0b0c');
    },



    'Conversion from HSB to HEX to HSB should not change': function ()
{
      var color = new Color([210, 17, 5], 'hsb');
      value_of(new Color(color.hex).hsb).should_be([210, 17, 5]);
    },

    'Conversion from HEX to HSB to HEX should not change': function ()
{
      var color = new Color('0A0B0C');
      value_of(new Color(color.hsb, 'hsb').hex).should_be('#0a0b0c');
    }

  });

Reply via email to