basic.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. var string = require("../color-string"),
  2. 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("rgba(200, 20, 233, 0.2)"), [200, 20, 233, 0.2]);
  31. assert.deepEqual(string.getRgba("rgba(200, 20, 233, 0)"), [200, 20, 233, 0]);
  32. assert.deepEqual(string.getRgba("rgba(100%, 30%, 90%, 0.2)"), [255, 77, 229, 0.2]);
  33. assert.deepEqual(string.getHsla("hsla(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]);
  34. assert.deepEqual(string.getHwb("hwb(200, 20%, 33%, 0.2)"), [200, 20, 33, 0.2]);
  35. // no alpha
  36. assert.deepEqual(string.getRgb("#fef"), [255, 238, 255]);
  37. assert.deepEqual(string.getRgb("rgba(200, 20, 233, 0.2)"), [200, 20, 233]);
  38. assert.deepEqual(string.getHsl("hsl(240, 100%, 50.5%)"), [240, 100, 50.5]);
  39. assert.deepEqual(string.getRgba('rgba(0,0,0,0)'), [0, 0, 0, 0]);
  40. assert.deepEqual(string.getHsla('hsla(0,0%,0%,0)'), [0, 0, 0, 0]);
  41. assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 0)"), [360, 10, 100, 0]);
  42. // range
  43. assert.deepEqual(string.getRgba("rgba(300, 600, 100, 3)"), [255, 255, 100, 1]);
  44. assert.deepEqual(string.getRgba("rgba(8000%, 100%, 333%, 88)"), [255, 255, 255, 1]);
  45. assert.deepEqual(string.getHsla("hsla(400, 10%, 200%, 10)"), [360, 10, 100, 1]);
  46. assert.deepEqual(string.getHwb("hwb(400, 10%, 200%, 10)"), [360, 10, 100, 1]);
  47. // invalid
  48. assert.strictEqual(string.getRgba("yellowblue"), undefined);
  49. assert.strictEqual(string.getRgba("hsl(100, 10%, 10%)"), undefined);
  50. assert.strictEqual(string.getRgba("hwb(100, 10%, 10%)"), undefined);
  51. // generators
  52. assert.equal(string.hexString([255, 10, 35]), "#FF0A23");
  53. assert.equal(string.rgbString([255, 10, 35]), "rgb(255, 10, 35)");
  54. assert.equal(string.rgbString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)");
  55. assert.equal(string.rgbString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)");
  56. assert.equal(string.rgbaString([255, 10, 35, 0.3]), "rgba(255, 10, 35, 0.3)");
  57. assert.equal(string.rgbaString([255, 10, 35], 0.3), "rgba(255, 10, 35, 0.3)");
  58. assert.equal(string.rgbaString([255, 10, 35]), "rgba(255, 10, 35, 1)");
  59. assert.equal(string.rgbaString([255, 10, 35, 0]), "rgba(255, 10, 35, 0)");
  60. assert.equal(string.percentString([255, 10, 35]), "rgb(100%, 4%, 14%)");
  61. assert.equal(string.percentString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)");
  62. assert.equal(string.percentString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)");
  63. assert.equal(string.percentaString([255, 10, 35, 0.3]), "rgba(100%, 4%, 14%, 0.3)");
  64. assert.equal(string.percentaString([255, 10, 35], 0.3), "rgba(100%, 4%, 14%, 0.3)");
  65. assert.equal(string.percentaString([255, 10, 35]), "rgba(100%, 4%, 14%, 1)");
  66. assert.equal(string.hslString([280, 40, 60]), "hsl(280, 40%, 60%)");
  67. assert.equal(string.hslString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)");
  68. assert.equal(string.hslString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)");
  69. assert.equal(string.hslaString([280, 40, 60, 0.3]), "hsla(280, 40%, 60%, 0.3)");
  70. assert.equal(string.hslaString([280, 40, 60], 0.3), "hsla(280, 40%, 60%, 0.3)");
  71. assert.equal(string.hslaString([280, 40, 60], 0), "hsla(280, 40%, 60%, 0)");
  72. assert.equal(string.hslaString([280, 40, 60]), "hsla(280, 40%, 60%, 1)");
  73. assert.equal(string.hwbString([280, 40, 60]), "hwb(280, 40%, 60%)");
  74. assert.equal(string.hwbString([280, 40, 60, 0.3]), "hwb(280, 40%, 60%, 0.3)");
  75. assert.equal(string.hwbString([280, 40, 60], 0.3), "hwb(280, 40%, 60%, 0.3)");
  76. assert.equal(string.hwbString([280, 40, 60], 0), "hwb(280, 40%, 60%, 0)");
  77. assert.equal(string.keyword([255, 255, 0]), "yellow");
  78. assert.equal(string.keyword([100, 255, 0]), undefined);