fb98c26fd9d54ce8287d93ece3764c4086c30e591e4888177a35ae67b24a2555233f8bd345ca09c99c759807337180d1fd0b16194162f253d2ddbea6107a5f 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. var string = require("../color-string");
  2. var assert = require("assert");
  3. assert.deepEqual(string.getRgba("#fef"), [255, 238, 255, 1]);
  4. assert.deepEqual(string.getRgba("#fffFEF"), [255, 255, 239, 1]);
  5. assert.deepEqual(string.getRgba("rgb(244, 233, 100)"), [244, 233, 100, 1]);
  6. assert.deepEqual(string.getRgba("rgb(100%, 30%, 90%)"), [255, 77, 229, 1]);
  7. assert.deepEqual(string.getRgba("transparent"), [0, 0, 0, 0]);
  8. assert.deepEqual(string.getHsla("hsl(240, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  9. assert.deepEqual(string.getHsla("hsl(240deg, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  10. assert.deepEqual(string.getHwb("hwb(240, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  11. assert.deepEqual(string.getHwb("hwb(240deg, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  12. // with sign
  13. assert.deepEqual(string.getRgba("rgb(-244, +233, -100)"), [0, 233, 0, 1]);
  14. assert.deepEqual(string.getHsla("hsl(+240, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  15. assert.deepEqual(string.getRgba("rgba(200, +20, -233, -0.0)"), [200, 20, 0, 0]);
  16. assert.deepEqual(string.getRgba("rgba(200, +20, -233, -0.0)"), [200, 20, 0, 0]);
  17. assert.deepEqual(string.getHsla("hsla(+200, 100%, 50%, -0.2)"), [200, 100, 50, 0]);
  18. assert.deepEqual(string.getHwb("hwb(+240, 100%, 50.5%)"), [240, 100, 50.5, 1]);
  19. assert.deepEqual(string.getHwb("hwb(-240deg, 100%, 50.5%)"), [0, 100, 50.5, 1]);
  20. assert.deepEqual(string.getHwb("hwb(-240deg, 100%, 50.5%, +0.6)"), [0, 100, 50.5, 0.6]);
  21. //subsequent return values should not change array
  22. assert.deepEqual(string.getRgba("blue"), [0, 0, 255, 1]);
  23. assert.deepEqual(string.getRgba("blue"), [0, 0, 255, 1]);
  24. assert.equal(string.getAlpha("rgb(244, 233, 100)"), 1);
  25. assert.equal(string.getAlpha("rgba(244, 233, 100, 0.5)"), 0.5);
  26. assert.equal(string.getAlpha("hsla(244, 100%, 100%, 0.6)"), 0.6);
  27. assert.equal(string.getAlpha("hwb(244, 100%, 100%, 0.6)"), 0.6);
  28. assert.equal(string.getAlpha("hwb(244, 100%, 100%)"), 1);
  29. // alpha
  30. assert.deepEqual(string.getRgba("#feff"), [255, 238, 255, 1]);
  31. assert.deepEqual(string.getRgba("#fef0"), [255, 238, 255, 0]);
  32. assert.deepEqual(string.getRgba("#fefa"), [255, 238, 255, 0.67]);
  33. assert.deepEqual(string.getRgba("#c814e933"), [200, 20, 233, 0.2]);
  34. assert.deepEqual(string.getRgba("#c814e900"), [200, 20, 233, 0]);
  35. assert.deepEqual(string.getRgba("#c814e9ff"), [200, 20, 233, 1]);
  36. assert.deepEqual(string.getRgba("rgba(200, 20, 233, 0.2)"), [200, 20, 233, 0.2]);
  37. assert.deepEqual(string.getRgba("rgba(200, 20, 233, 0)"), [200, 20, 233, 0]);
  38. assert.deepEqual(string.getRgba("rgba(100%, 30%, 90%, 0.2)"), [255, 77, 229, 0.2]);
  39. assert.deepEqual(string.getHsla("hsla(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]);
  40. assert.deepEqual(string.getHwb("hwb(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]);
  41. // no alpha
  42. assert.deepEqual(string.getRgb("#fef"), [255, 238, 255]);
  43. assert.deepEqual(string.getRgb("rgba(200, 20, 233, 0.2)"), [200, 20, 233]);
  44. assert.deepEqual(string.getHsl("hsl(240, 100%, 50.5%)"), [240, 100, 50.5]);
  45. assert.deepEqual(string.getRgba("rgba(0,0,0,0)"), [0, 0, 0, 0]);
  46. assert.deepEqual(string.getHsla("hsla(0,0%,0%,0)"), [0, 0, 0, 0]);
  47. assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 0)"), [360, 10, 100, 0]);
  48. // range
  49. assert.deepEqual(string.getRgba("rgba(300, 600, 100, 3)"), [255, 255, 100, 1]);
  50. assert.deepEqual(string.getRgba("rgba(8000%, 100%, 333%, 88)"), [255, 255, 255, 1]);
  51. assert.deepEqual(string.getHsla("hsla(400, 10%, 200%, 10)"), [360, 10, 100, 1]);
  52. assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 10)"), [360, 10, 100, 1]);
  53. // invalid
  54. assert.strictEqual(string.getRgba("yellowblue"), undefined);
  55. assert.strictEqual(string.getRgba("hsl(100, 10%, 10%)"), undefined);
  56. assert.strictEqual(string.getRgba("hwb(100, 10%, 10%)"), undefined);
  57. assert.strictEqual(string.getRgba("#1"), undefined);
  58. assert.strictEqual(string.getRgba("#f"), undefined);
  59. assert.strictEqual(string.getRgba("#4f"), undefined);
  60. assert.strictEqual(string.getRgba("#45ab4"), undefined);
  61. assert.strictEqual(string.getRgba("#45ab45e"), undefined);
  62. // generators
  63. assert.equal(string.hexString([255, 10, 35]), "#FF0A23");
  64. assert.equal(string.hexString([255, 10, 35, 1]), "#FF0A23");
  65. assert.equal(string.hexString([255, 10, 35], 1), "#FF0A23");
  66. assert.equal(string.hexString([255, 10, 35, 0.3]), "#FF0A234D");
  67. assert.equal(string.hexString([255, 10, 35], 0.3), "#FF0A234D");
  68. assert.equal(string.hexString([255, 10, 35, 0]), "#FF0A2300");
  69. assert.equal(string.hexString([255, 10, 35], 0), "#FF0A2300");
  70. assert.equal(string.rgbString([255, 10, 35]), "rgb(255, 10, 35)");
  71. assert.equal(string.rgbString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)");
  72. assert.equal(string.rgbString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)");
  73. assert.equal(string.rgbaString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)");
  74. assert.equal(string.rgbaString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)");
  75. assert.equal(string.rgbaString([255, 10, 35]), "rgba(255, 10, 35, 1)");
  76. assert.equal(string.rgbaString([255, 10, 35, 0]), "rgba(255, 10, 35, 0)");
  77. assert.equal(string.percentString([255, 10, 35]), "rgb(100%, 4%, 14%)");
  78. assert.equal(string.percentString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)");
  79. assert.equal(string.percentString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)");
  80. assert.equal(string.percentaString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)");
  81. assert.equal(string.percentaString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)");
  82. assert.equal(string.percentaString([255, 10, 35]), "rgba(100%, 4%, 14%, 1)");
  83. assert.equal(string.hslString([280, 40, 60]), "hsl(280, 40%, 60%)");
  84. assert.equal(string.hslString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)");
  85. assert.equal(string.hslString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)");
  86. assert.equal(string.hslaString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)");
  87. assert.equal(string.hslaString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)");
  88. assert.equal(string.hslaString([280, 40, 60], 0), "hsla(280, 40%, 60%, 0)");
  89. assert.equal(string.hslaString([280, 40, 60]), "hsla(280, 40%, 60%, 1)");
  90. assert.equal(string.hwbString([280, 40, 60]), "hwb(280, 40%, 60%)");
  91. assert.equal(string.hwbString([280, 40, 60, 0.3]), "hwb(280, 40%, 60%, 0.3)");
  92. assert.equal(string.hwbString([280, 40, 60], 0.3), "hwb(280, 40%, 60%, 0.3)");
  93. assert.equal(string.hwbString([280, 40, 60], 0), "hwb(280, 40%, 60%, 0)");
  94. assert.equal(string.keyword([255, 255, 0]), "yellow");
  95. assert.equal(string.keyword([100, 255, 0]), undefined);