@kaeawc/auto-mobile 0.0.90 → 0.0.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +7 -0
  2. package/README.md.backup +7 -0
  3. package/dist/build-info.json +12 -11
  4. package/dist/schemas/README.md +16 -0
  5. package/dist/schemas/prototype-icon-names.json +302 -0
  6. package/dist/schemas/prototype-platform-permissions.json +75 -0
  7. package/dist/schemas/test-plan.schema.json +2 -2
  8. package/dist/src/chunk-09442h7v.js +4 -0
  9. package/dist/src/chunk-0dfnyfkh.js +5 -0
  10. package/dist/src/chunk-0e4gm1kj.js +5 -0
  11. package/dist/src/chunk-0eb8576f.js +4 -0
  12. package/dist/src/chunk-0rjm4nx7.js +5 -0
  13. package/dist/src/chunk-0w1spptt.js +6 -0
  14. package/dist/src/chunk-1zmh2eak.js +4 -0
  15. package/dist/src/chunk-28k63ha3.js +5 -0
  16. package/dist/src/chunk-2d4wmp8b.js +4 -0
  17. package/dist/src/chunk-2e6s75qv.js +78 -0
  18. package/dist/src/chunk-2v7tw1nj.js +5 -0
  19. package/dist/src/chunk-32jpxz2y.js +323 -0
  20. package/dist/src/chunk-34zxqcmq.js +5 -0
  21. package/dist/src/chunk-3jmvqygr.js +238 -0
  22. package/dist/src/chunk-3swvfhqt.js +5 -0
  23. package/dist/src/chunk-44bt78m9.js +5 -0
  24. package/dist/src/chunk-488vt2bp.js +4 -0
  25. package/dist/src/chunk-4fgdhcwx.js +5 -0
  26. package/dist/src/chunk-4jp2se4w.js +4 -0
  27. package/dist/src/chunk-4pfftt07.js +5 -0
  28. package/dist/src/chunk-4vhr9e4t.js +4 -0
  29. package/dist/src/chunk-4xd6zs3y.js +15 -0
  30. package/dist/src/chunk-51567pg8.js +4 -0
  31. package/dist/src/chunk-5agqsfev.js +4 -0
  32. package/dist/src/chunk-5d706gmr.js +4 -0
  33. package/dist/src/chunk-5kd4rqk7.js +5 -0
  34. package/dist/src/chunk-5s645vr4.js +4 -0
  35. package/dist/src/chunk-61t538bm.js +4 -0
  36. package/dist/src/chunk-6d3mmqxt.js +54 -0
  37. package/dist/src/chunk-6hyt398x.js +5 -0
  38. package/dist/src/chunk-6mnr8kpm.js +4 -0
  39. package/dist/src/chunk-6pg7bqck.js +4 -0
  40. package/dist/src/chunk-79q5xsdc.js +42 -0
  41. package/dist/src/chunk-7bdgand3.js +4 -0
  42. package/dist/src/chunk-84cp9dw5.js +4 -0
  43. package/dist/src/chunk-86f2h5ww.js +5 -0
  44. package/dist/src/chunk-8cghfzb2.js +19 -0
  45. package/dist/src/chunk-8en08r7q.js +5 -0
  46. package/dist/src/chunk-950qcq1e.js +10 -0
  47. package/dist/src/chunk-9rkfyt6q.js +5 -0
  48. package/dist/src/chunk-9tf2p9y9.js +5 -0
  49. package/dist/src/chunk-9y5bcy28.js +6 -0
  50. package/dist/src/chunk-a2sc4jm0.js +5 -0
  51. package/dist/src/chunk-a4k9rt7z.js +5 -0
  52. package/dist/src/chunk-aa5ng3d1.js +4 -0
  53. package/dist/src/chunk-ajsrz473.js +5 -0
  54. package/dist/src/chunk-b3h0a6ca.js +4 -0
  55. package/dist/src/chunk-b4cxdzwy.js +20 -0
  56. package/dist/src/chunk-b6a737qt.js +4 -0
  57. package/dist/src/chunk-bn64x5z5.js +5 -0
  58. package/dist/src/chunk-bvh649za.js +12 -0
  59. package/dist/src/chunk-c9nk1r78.js +5 -0
  60. package/dist/src/chunk-c9tyfg4j.js +26 -0
  61. package/dist/src/chunk-cfsdfqnm.js +4 -0
  62. package/dist/src/chunk-cxyf04jc.js +7 -0
  63. package/dist/src/chunk-d57432wq.js +4 -0
  64. package/dist/src/chunk-da08tx5v.js +4 -0
  65. package/dist/src/chunk-eka89q3k.js +4 -0
  66. package/dist/src/chunk-f2tc08m2.js +4 -0
  67. package/dist/src/chunk-f8tnk179.js +5 -0
  68. package/dist/src/chunk-f9s1kkhx.js +5 -0
  69. package/dist/src/chunk-fbp8a4rx.js +4 -0
  70. package/dist/src/chunk-fd2z0sze.js +4 -0
  71. package/dist/src/chunk-fk927f4q.js +54 -0
  72. package/dist/src/chunk-fxmr3a0f.js +4 -0
  73. package/dist/src/chunk-gaqwhd44.js +4 -0
  74. package/dist/src/chunk-ggtd5x5a.js +5 -0
  75. package/dist/src/chunk-gndcfrm7.js +4 -0
  76. package/dist/src/chunk-h3n4adc6.js +310 -0
  77. package/dist/src/chunk-h5pjbb83.js +4 -0
  78. package/dist/src/chunk-hgnnh302.js +4 -0
  79. package/dist/src/chunk-hmke8nhx.js +5 -0
  80. package/dist/src/chunk-j2bx12hn.js +4 -0
  81. package/dist/src/chunk-j70y1a2g.js +4 -0
  82. package/dist/src/chunk-jdqvcq0a.js +5 -0
  83. package/dist/src/chunk-jhnbfj19.js +55 -0
  84. package/dist/src/chunk-js1jpyxp.js +6 -0
  85. package/dist/src/chunk-kbjq0qvb.js +4 -0
  86. package/dist/src/chunk-kfwx57xd.js +4 -0
  87. package/dist/src/chunk-km0dy5vc.js +71 -0
  88. package/dist/src/chunk-kzwctna2.js +4 -0
  89. package/dist/src/chunk-m9ehyehy.js +4 -0
  90. package/dist/src/chunk-mct91p1f.js +4 -0
  91. package/dist/src/chunk-mf9spd4g.js +5 -0
  92. package/dist/src/chunk-mgrcansb.js +4 -0
  93. package/dist/src/chunk-mqc1d0eb.js +6 -0
  94. package/dist/src/chunk-n1zmpk0z.js +4 -0
  95. package/dist/src/chunk-ncyjf63g.js +4 -0
  96. package/dist/src/chunk-nr64d21q.js +973 -0
  97. package/dist/src/chunk-nwm2pq5v.js +168 -0
  98. package/dist/src/chunk-pm06b05d.js +9 -0
  99. package/dist/src/chunk-q50s00ry.js +4 -0
  100. package/dist/src/chunk-qv2918jt.js +4 -0
  101. package/dist/src/chunk-qwye1958.js +14 -0
  102. package/dist/src/chunk-r0f1q783.js +5 -0
  103. package/dist/src/chunk-r14wwk37.js +18 -0
  104. package/dist/src/chunk-r20pe1nv.js +5 -0
  105. package/dist/src/chunk-r8z9pfve.js +5 -0
  106. package/dist/src/chunk-rdpgkjf6.js +4 -0
  107. package/dist/src/chunk-rkr0dks9.js +5 -0
  108. package/dist/src/chunk-rn84t3sf.js +11 -0
  109. package/dist/src/chunk-s123kn7n.js +4 -0
  110. package/dist/src/chunk-s1zq65ny.js +4 -0
  111. package/dist/src/chunk-s73qn3fx.js +4 -0
  112. package/dist/src/chunk-sjn0nj4p.js +5 -0
  113. package/dist/src/chunk-sns0c35v.js +7 -0
  114. package/dist/src/chunk-stfzjr9y.js +8 -0
  115. package/dist/src/chunk-sz1a7p43.js +4 -0
  116. package/dist/src/chunk-t4dr5c8v.js +8 -0
  117. package/dist/src/chunk-tc8k9c1j.js +4 -0
  118. package/dist/src/chunk-teznhase.js +4 -0
  119. package/dist/src/chunk-ty9xgmz4.js +4 -0
  120. package/dist/src/chunk-tyazf3sk.js +145 -0
  121. package/dist/src/chunk-v6npjrjm.js +5 -0
  122. package/dist/src/chunk-v90es00d.js +4 -0
  123. package/dist/src/chunk-vbvtzkwz.js +5 -0
  124. package/dist/src/chunk-vefd8qee.js +8 -0
  125. package/dist/src/chunk-vs9r72ta.js +17 -0
  126. package/dist/src/chunk-w2mwa0jk.js +4 -0
  127. package/dist/src/chunk-w7zsh13a.js +9 -0
  128. package/dist/src/chunk-w88k0bgr.js +4 -0
  129. package/dist/src/chunk-wry6skrm.js +4 -0
  130. package/dist/src/chunk-wzdt0enk.js +4 -0
  131. package/dist/src/chunk-xhhv854c.js +4 -0
  132. package/dist/src/chunk-y58270hd.js +4 -0
  133. package/dist/src/chunk-yk0hmbex.js +4 -0
  134. package/dist/src/chunk-ympy4fdz.js +28 -0
  135. package/dist/src/chunk-yw436axy.js +4 -0
  136. package/dist/src/chunk-z04jrpjy.js +5 -0
  137. package/dist/src/chunk-z2xznczw.js +4 -0
  138. package/dist/src/chunk-z4xnrgps.js +4 -0
  139. package/dist/src/chunk-z7csyszv.js +4 -0
  140. package/dist/src/chunk-z8t0v07j.js +11 -0
  141. package/dist/src/chunk-z916af47.js +228 -0
  142. package/dist/src/chunk-zcr8he8q.js +5 -0
  143. package/dist/src/chunk-zd9vmkzn.js +9 -0
  144. package/dist/src/chunk-zg67wjkh.js +5 -0
  145. package/dist/src/chunk-zj939v0h.js +5 -0
  146. package/dist/src/chunk-zkdjwtc1.js +4 -0
  147. package/dist/src/chunk-zkv5kzt6.js +4 -0
  148. package/dist/src/daemon/processEntry.js +4 -0
  149. package/dist/src/index.js +4 -2797
  150. package/dist/src/runtime/bunRuntimeGuard.js +4 -0
  151. package/dist/src/utils/workers/iosBundleExtractWorker.js +2 -3
  152. package/node_modules/strtok3/lib/BufferSizeError.js +1 -1
  153. package/node_modules/strtok3/lib/TokenWriter.js +151 -0
  154. package/node_modules/strtok3/lib/core.js +1 -0
  155. package/node_modules/strtok3/package.json +2 -2
  156. package/node_modules/token-types/LICENSE.txt +9 -9
  157. package/node_modules/token-types/{lib → dist/lib}/index.js +21 -3
  158. package/node_modules/token-types/package.json +81 -81
  159. package/package.json +10 -10
  160. package/schemas/README.md +16 -0
  161. package/schemas/prototype-icon-names.json +302 -0
  162. package/schemas/prototype-platform-permissions.json +75 -0
  163. package/schemas/test-plan.schema.json +2 -2
  164. package/node_modules/@borewit/text-codec/README.md +0 -87
  165. package/node_modules/@jimp/diff/node_modules/pixelmatch/README.md +0 -110
  166. package/node_modules/@jimp/diff/node_modules/pixelmatch/node_modules/pngjs/README.md +0 -433
  167. package/node_modules/@jimp/file-ops/dist/browser/index.js +0 -8
  168. package/node_modules/@jimp/js-png/README.md +0 -35
  169. package/node_modules/@jimp/js-png/src/__image_snapshots__/index-node-test-ts-png-should-use-png-options-1-snap.png +0 -0
  170. package/node_modules/@jimp/js-png/src/output.png +0 -0
  171. package/node_modules/@jimp/js-png/vitest.config.browser.mjs +0 -3
  172. package/node_modules/@jimp/plugin-resize/README.md +0 -12
  173. package/node_modules/@jimp/plugin-resize/vitest.config.browser.mjs +0 -3
  174. package/node_modules/@tokenizer/inflate/README.md +0 -114
  175. package/node_modules/@tokenizer/token/README.md +0 -19
  176. package/node_modules/await-to-js/README.md +0 -82
  177. package/node_modules/debug/README.md +0 -481
  178. package/node_modules/exif-parser/README.md +0 -83
  179. package/node_modules/file-type/readme.md +0 -667
  180. package/node_modules/ieee754/README.md +0 -51
  181. package/node_modules/mime/README.md +0 -178
  182. package/node_modules/ms/readme.md +0 -59
  183. package/node_modules/parse-bmfont-xml/README.md +0 -74
  184. package/node_modules/parse-bmfont-xml/lib/browser.js +0 -85
  185. package/node_modules/parse-bmfont-xml/node_modules/xml2js/README.md +0 -507
  186. package/node_modules/pngjs/README.md +0 -287
  187. package/node_modules/sax/README.md +0 -228
  188. package/node_modules/strtok3/README.md +0 -736
  189. package/node_modules/tinycolor2/README.md +0 -492
  190. package/node_modules/tinycolor2/cjs/test.js +0 -2191
  191. package/node_modules/tinycolor2/cjs/test_template.js +0 -26
  192. package/node_modules/tinycolor2/deno_asserts@0.168.0.mjs +0 -807
  193. package/node_modules/tinycolor2/esm/test.js +0 -2189
  194. package/node_modules/tinycolor2/esm/test_template.js +0 -24
  195. package/node_modules/tinycolor2/tinycolor.js +0 -1191
  196. package/node_modules/token-types/README.md +0 -120
  197. package/node_modules/uint8array-extras/readme.md +0 -318
  198. package/node_modules/xml-parse-from-string/README.md +0 -35
  199. package/node_modules/xmlbuilder/README.md +0 -86
  200. package/node_modules/zod/README.md +0 -208
  201. package/node_modules/zod/v4/locales/ar.d.cts +0 -4
  202. package/node_modules/zod/v4/locales/ar.d.ts +0 -4
  203. package/node_modules/zod/v4/locales/az.d.cts +0 -4
  204. package/node_modules/zod/v4/locales/az.d.ts +0 -4
  205. package/node_modules/zod/v4/locales/be.d.cts +0 -4
  206. package/node_modules/zod/v4/locales/be.d.ts +0 -4
  207. package/node_modules/zod/v4/locales/ca.d.cts +0 -4
  208. package/node_modules/zod/v4/locales/ca.d.ts +0 -4
  209. package/node_modules/zod/v4/locales/cs.d.cts +0 -4
  210. package/node_modules/zod/v4/locales/cs.d.ts +0 -4
  211. package/node_modules/zod/v4/locales/de.d.cts +0 -4
  212. package/node_modules/zod/v4/locales/de.d.ts +0 -4
  213. package/node_modules/zod/v4/locales/en.d.cts +0 -5
  214. package/node_modules/zod/v4/locales/en.d.ts +0 -5
  215. package/node_modules/zod/v4/locales/eo.d.cts +0 -5
  216. package/node_modules/zod/v4/locales/eo.d.ts +0 -5
  217. package/node_modules/zod/v4/locales/es.d.cts +0 -4
  218. package/node_modules/zod/v4/locales/es.d.ts +0 -4
  219. package/node_modules/zod/v4/locales/fa.d.cts +0 -4
  220. package/node_modules/zod/v4/locales/fa.d.ts +0 -4
  221. package/node_modules/zod/v4/locales/fi.d.cts +0 -4
  222. package/node_modules/zod/v4/locales/fi.d.ts +0 -4
  223. package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -4
  224. package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  225. package/node_modules/zod/v4/locales/fr.d.cts +0 -4
  226. package/node_modules/zod/v4/locales/fr.d.ts +0 -4
  227. package/node_modules/zod/v4/locales/he.d.cts +0 -4
  228. package/node_modules/zod/v4/locales/he.d.ts +0 -4
  229. package/node_modules/zod/v4/locales/hu.d.cts +0 -4
  230. package/node_modules/zod/v4/locales/hu.d.ts +0 -4
  231. package/node_modules/zod/v4/locales/id.d.cts +0 -4
  232. package/node_modules/zod/v4/locales/id.d.ts +0 -4
  233. package/node_modules/zod/v4/locales/index.d.cts +0 -39
  234. package/node_modules/zod/v4/locales/index.d.ts +0 -39
  235. package/node_modules/zod/v4/locales/it.d.cts +0 -4
  236. package/node_modules/zod/v4/locales/it.d.ts +0 -4
  237. package/node_modules/zod/v4/locales/ja.d.cts +0 -4
  238. package/node_modules/zod/v4/locales/ja.d.ts +0 -4
  239. package/node_modules/zod/v4/locales/kh.d.cts +0 -4
  240. package/node_modules/zod/v4/locales/kh.d.ts +0 -4
  241. package/node_modules/zod/v4/locales/ko.d.cts +0 -4
  242. package/node_modules/zod/v4/locales/ko.d.ts +0 -4
  243. package/node_modules/zod/v4/locales/mk.d.cts +0 -4
  244. package/node_modules/zod/v4/locales/mk.d.ts +0 -4
  245. package/node_modules/zod/v4/locales/ms.d.cts +0 -4
  246. package/node_modules/zod/v4/locales/ms.d.ts +0 -4
  247. package/node_modules/zod/v4/locales/nl.d.cts +0 -4
  248. package/node_modules/zod/v4/locales/nl.d.ts +0 -4
  249. package/node_modules/zod/v4/locales/no.d.cts +0 -4
  250. package/node_modules/zod/v4/locales/no.d.ts +0 -4
  251. package/node_modules/zod/v4/locales/ota.d.cts +0 -4
  252. package/node_modules/zod/v4/locales/ota.d.ts +0 -4
  253. package/node_modules/zod/v4/locales/pl.d.cts +0 -4
  254. package/node_modules/zod/v4/locales/pl.d.ts +0 -4
  255. package/node_modules/zod/v4/locales/ps.d.cts +0 -4
  256. package/node_modules/zod/v4/locales/ps.d.ts +0 -4
  257. package/node_modules/zod/v4/locales/pt.d.cts +0 -4
  258. package/node_modules/zod/v4/locales/pt.d.ts +0 -4
  259. package/node_modules/zod/v4/locales/ru.d.cts +0 -4
  260. package/node_modules/zod/v4/locales/ru.d.ts +0 -4
  261. package/node_modules/zod/v4/locales/sl.d.cts +0 -4
  262. package/node_modules/zod/v4/locales/sl.d.ts +0 -4
  263. package/node_modules/zod/v4/locales/sv.d.cts +0 -4
  264. package/node_modules/zod/v4/locales/sv.d.ts +0 -4
  265. package/node_modules/zod/v4/locales/ta.d.cts +0 -4
  266. package/node_modules/zod/v4/locales/ta.d.ts +0 -4
  267. package/node_modules/zod/v4/locales/th.d.cts +0 -4
  268. package/node_modules/zod/v4/locales/th.d.ts +0 -4
  269. package/node_modules/zod/v4/locales/tr.d.cts +0 -5
  270. package/node_modules/zod/v4/locales/tr.d.ts +0 -5
  271. package/node_modules/zod/v4/locales/ua.d.cts +0 -4
  272. package/node_modules/zod/v4/locales/ua.d.ts +0 -4
  273. package/node_modules/zod/v4/locales/ur.d.cts +0 -4
  274. package/node_modules/zod/v4/locales/ur.d.ts +0 -4
  275. package/node_modules/zod/v4/locales/vi.d.cts +0 -4
  276. package/node_modules/zod/v4/locales/vi.d.ts +0 -4
  277. package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -4
  278. package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  279. package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -4
  280. package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
@@ -1,2189 +0,0 @@
1
- // This file is autogenerated.
2
- // Ideally it wouldn't exist, but it's here to test cjs in node
3
- // Changes should go into ./test.js, and if new assertions are needed
4
- // they'll need to be shimmed here as well
5
- import tinycolor from "./tinycolor.js";
6
- import { Deno, testDefinitions } from "@deno/shim-deno-test";
7
- const { assertEquals, assert, assertThrows } = await import(
8
- "../deno_asserts@0.168.0.mjs"
9
- );
10
- async function runDenoTests() {
11
- for (const test of testDefinitions) {
12
- if (test.ignore) {
13
- console.log(`Ignoring ${test.name}`);
14
- continue;
15
- }
16
- console.log(`Running ${test.name}`);
17
- await test.fn();
18
- console.log(`> Passed ${test.name}`);
19
- }
20
- }
21
-
22
- // TEST_BEGINS_HERE
23
-
24
- Deno.test("TinyColor initialization", function () {
25
- assert(
26
- typeof tinycolor != "undefined",
27
- "tinycolor is initialized on the page"
28
- );
29
- assert(
30
- typeof tinycolor("red") == "object",
31
- "tinycolor is able to be instantiated"
32
- );
33
-
34
- var r = tinycolor("red");
35
- assert(
36
- tinycolor(r) === r,
37
- "when given a tinycolor instance, tinycolor() returns it"
38
- );
39
- assert(
40
- new tinycolor(r) === r,
41
- "when given a tinycolor instance, new tinycolor() returns it"
42
- );
43
- assertEquals(
44
- tinycolor("red", { format: "hex" }).toString(),
45
- "#ff0000",
46
- "tinycolor options are being parsed"
47
- );
48
- assertEquals(
49
- tinycolor.fromRatio({ r: 1, g: 0, b: 0 }, { format: "hex" }).toString(),
50
- "#ff0000",
51
- "tinycolor options are being parsed"
52
- );
53
-
54
- var obj = { h: 180, s: 0.5, l: 0.5 };
55
- var color = tinycolor(obj);
56
- assert(
57
- obj.s === 0.5,
58
- "when given an object, the original object is not modified"
59
- );
60
- });
61
-
62
- Deno.test("Original input", function () {
63
- var colorRgbUp = "RGB(39, 39, 39)";
64
- var colorRgbLow = "rgb(39, 39, 39)";
65
- var colorRgbMix = "RgB(39, 39, 39)";
66
- var tinycolorObj = tinycolor(colorRgbMix);
67
- var inputObj = { r: 100, g: 100, b: 100 };
68
- var r = tinycolor("red");
69
-
70
- assert(
71
- tinycolor(colorRgbLow).getOriginalInput() === colorRgbLow,
72
- "original lowercase input is returned"
73
- );
74
- assert(
75
- tinycolor(colorRgbUp).getOriginalInput() === colorRgbUp,
76
- "original uppercase input is returned"
77
- );
78
- assert(
79
- tinycolor(colorRgbMix).getOriginalInput() === colorRgbMix,
80
- "original mixed input is returned"
81
- );
82
- assert(
83
- tinycolor(tinycolorObj).getOriginalInput() === colorRgbMix,
84
- "when given a tinycolor instance, the color string is returned"
85
- );
86
- assert(
87
- tinycolor(inputObj).getOriginalInput() === inputObj,
88
- "when given an object, the object is returned"
89
- );
90
- assert(
91
- new tinycolor("").getOriginalInput() === "",
92
- "when given an empty string, an empty string is returned"
93
- );
94
- assert(
95
- new tinycolor(null).getOriginalInput() === "",
96
- "when given a null value, an empty string is returned"
97
- );
98
- });
99
-
100
- Deno.test("Cloning color", function () {
101
- var originalColor = tinycolor("red");
102
- var originalColorRgbString = originalColor.toRgbString();
103
-
104
- var clonedColor = originalColor.clone();
105
- assert(
106
- clonedColor.toRgbString() === originalColor.toRgbString(),
107
- "cloned color is identical"
108
- );
109
-
110
- clonedColor.setAlpha(0.5);
111
- assert(
112
- clonedColor.toRgbString() !== originalColor.toRgbString(),
113
- "cloned color is changing independently from original color"
114
- );
115
- assert(
116
- originalColorRgbString === originalColor.toRgbString(),
117
- "original color was not changed by cloned color change"
118
- );
119
- });
120
- Deno.test("Random color", function () {
121
- var randomColor = tinycolor.random();
122
- assertEquals(randomColor.getAlpha(), 1);
123
- assertEquals(randomColor.getFormat(), "prgb");
124
-
125
- randomColor.setAlpha(0.5);
126
- assertEquals(randomColor.toHex8String().slice(-2), "80");
127
- });
128
-
129
- // Taken from convertWikipediaColors.html
130
- var conversions = [
131
- {
132
- hex: "#FFFFFF",
133
- hex8: "#FFFFFFFF",
134
- rgb: { r: "100.0%", g: "100.0%", b: "100.0%" },
135
- hsv: { h: "0", s: "0.000", v: "1.000" },
136
- hsl: { h: "0", s: "0.000", l: "1.000" },
137
- },
138
- {
139
- hex: "#808080",
140
- hex8: "#808080FF",
141
- rgb: { r: "050.0%", g: "050.0%", b: "050.0%" },
142
- hsv: { h: "0", s: "0.000", v: "0.500" },
143
- hsl: { h: "0", s: "0.000", l: "0.500" },
144
- },
145
- {
146
- hex: "#000000",
147
- hex8: "#000000FF",
148
- rgb: { r: "000.0%", g: "000.0%", b: "000.0%" },
149
- hsv: { h: "0", s: "0.000", v: "0.000" },
150
- hsl: { h: "0", s: "0.000", l: "0.000" },
151
- },
152
- {
153
- hex: "#FF0000",
154
- hex8: "#FF0000FF",
155
- rgb: { r: "100.0%", g: "000.0%", b: "000.0%" },
156
- hsv: { h: "0.0", s: "1.000", v: "1.000" },
157
- hsl: { h: "0.0", s: "1.000", l: "0.500" },
158
- },
159
- {
160
- hex: "#BFBF00",
161
- hex8: "#BFBF00FF",
162
- rgb: { r: "075.0%", g: "075.0%", b: "000.0%" },
163
- hsv: { h: "60.0", s: "1.000", v: "0.750" },
164
- hsl: { h: "60.0", s: "1.000", l: "0.375" },
165
- },
166
- {
167
- hex: "#008000",
168
- hex8: "#008000FF",
169
- rgb: { r: "000.0%", g: "050.0%", b: "000.0%" },
170
- hsv: { h: "120.0", s: "1.000", v: "0.500" },
171
- hsl: { h: "120.0", s: "1.000", l: "0.250" },
172
- },
173
- {
174
- hex: "#80FFFF",
175
- hex8: "#80FFFFFF",
176
- rgb: { r: "050.0%", g: "100.0%", b: "100.0%" },
177
- hsv: { h: "180.0", s: "0.500", v: "1.000" },
178
- hsl: { h: "180.0", s: "1.000", l: "0.750" },
179
- },
180
- {
181
- hex: "#8080FF",
182
- hex8: "#8080FFFF",
183
- rgb: { r: "050.0%", g: "050.0%", b: "100.0%" },
184
- hsv: { h: "240.0", s: "0.500", v: "1.000" },
185
- hsl: { h: "240.0", s: "1.000", l: "0.750" },
186
- },
187
- {
188
- hex: "#BF40BF",
189
- hex8: "#BF40BFFF",
190
- rgb: { r: "075.0%", g: "025.0%", b: "075.0%" },
191
- hsv: { h: "300.0", s: "0.667", v: "0.750" },
192
- hsl: { h: "300.0", s: "0.500", l: "0.500" },
193
- },
194
- {
195
- hex: "#A0A424",
196
- hex8: "#A0A424FF",
197
- rgb: { r: "062.8%", g: "064.3%", b: "014.2%" },
198
- hsv: { h: "61.8", s: "0.779", v: "0.643" },
199
- hsl: { h: "61.8", s: "0.638", l: "0.393" },
200
- },
201
- {
202
- hex: "#1EAC41",
203
- hex8: "#1EAC41FF",
204
- rgb: { r: "011.6%", g: "067.5%", b: "025.5%" },
205
- hsv: { h: "134.9", s: "0.828", v: "0.675" },
206
- hsl: { h: "134.9", s: "0.707", l: "0.396" },
207
- },
208
- {
209
- hex: "#B430E5",
210
- hex8: "#B430E5FF",
211
- rgb: { r: "070.4%", g: "018.7%", b: "089.7%" },
212
- hsv: { h: "283.7", s: "0.792", v: "0.897" },
213
- hsl: { h: "283.7", s: "0.775", l: "0.542" },
214
- },
215
- {
216
- hex: "#FEF888",
217
- hex8: "#FEF888FF",
218
- rgb: { r: "099.8%", g: "097.4%", b: "053.2%" },
219
- hsv: { h: "56.9", s: "0.467", v: "0.998" },
220
- hsl: { h: "56.9", s: "0.991", l: "0.765" },
221
- },
222
- {
223
- hex: "#19CB97",
224
- hex8: "#19CB97FF",
225
- rgb: { r: "009.9%", g: "079.5%", b: "059.1%" },
226
- hsv: { h: "162.4", s: "0.875", v: "0.795" },
227
- hsl: { h: "162.4", s: "0.779", l: "0.447" },
228
- },
229
- {
230
- hex: "#362698",
231
- hex8: "#362698FF",
232
- rgb: { r: "021.1%", g: "014.9%", b: "059.7%" },
233
- hsv: { h: "248.3", s: "0.750", v: "0.597" },
234
- hsl: { h: "248.3", s: "0.601", l: "0.373" },
235
- },
236
- {
237
- hex: "#7E7EB8",
238
- hex8: "#7E7EB8FF",
239
- rgb: { r: "049.5%", g: "049.3%", b: "072.1%" },
240
- hsv: { h: "240.5", s: "0.316", v: "0.721" },
241
- hsl: { h: "240.5", s: "0.290", l: "0.607" },
242
- },
243
- ];
244
-
245
- Deno.test("Color Equality", function () {
246
- for (var i = 0; i < conversions.length; i++) {
247
- var c = conversions[i];
248
- var tiny = tinycolor(c.hex);
249
-
250
- assert(true, tiny.isValid());
251
- assert(
252
- true,
253
- "Testing " +
254
- c.hex +
255
- ": " +
256
- tiny.toRgbString() +
257
- " " +
258
- tiny.toPercentageRgbString() +
259
- " " +
260
- tiny.toHsvString() +
261
- " " +
262
- tiny.toHslString() +
263
- " " +
264
- tiny.toHexString() +
265
- "Original: " +
266
- JSON.stringify(c.rgb) +
267
- " " +
268
- JSON.stringify(c.hsv) +
269
- " " +
270
- JSON.stringify(c.hsl)
271
- );
272
- assert(tinycolor.equals(c.rgb, c.hex), "RGB equals hex " + c.hex);
273
- assert(tinycolor.equals(c.rgb, c.hex8), "RGB equals hex " + c.hex);
274
- assert(tinycolor.equals(c.rgb, c.hsl), "RGB equals HSL " + c.hex);
275
- assert(tinycolor.equals(c.rgb, c.hsv), "RGB equals HSV " + c.hex);
276
- assert(tinycolor.equals(c.rgb, c.rgb), "RGB equals RGB " + c.hex);
277
-
278
- assert(tinycolor.equals(c.hex, c.hex), "hex equals hex " + c.hex);
279
- assert(tinycolor.equals(c.hex, c.hex8), "hex equals hex8 " + c.hex);
280
- assert(tinycolor.equals(c.hex, c.hsl), "hex equals HSL " + c.hex);
281
- assert(tinycolor.equals(c.hex, c.hsv), "hex equals HSV " + c.hex);
282
-
283
- assert(tinycolor.equals(c.hsl, c.hsv), "HSL equals HSV " + c.hex);
284
- }
285
- });
286
-
287
- Deno.test("With Ratio", function () {
288
- assertEquals(
289
- tinycolor.fromRatio({ r: 1, g: 1, b: 1 }).toHexString(),
290
- "#ffffff",
291
- "white"
292
- );
293
- assertEquals(
294
- tinycolor.fromRatio({ r: 1, g: 0, b: 0, a: 0.5 }).toRgbString(),
295
- "rgba(255, 0, 0, 0.5)",
296
- "alpha works when ratio is parsed"
297
- );
298
- assertEquals(
299
- tinycolor.fromRatio({ r: 1, g: 0, b: 0, a: 1 }).toRgbString(),
300
- "rgb(255, 0, 0)",
301
- "alpha = 1 works when ratio is parsed"
302
- );
303
- assertEquals(
304
- tinycolor.fromRatio({ r: 1, g: 0, b: 0, a: 10 }).toRgbString(),
305
- "rgb(255, 0, 0)",
306
- "alpha > 1 works when ratio is parsed"
307
- );
308
- assertEquals(
309
- tinycolor.fromRatio({ r: 1, g: 0, b: 0, a: -1 }).toRgbString(),
310
- "rgb(255, 0, 0)",
311
- "alpha < 1 works when ratio is parsed"
312
- );
313
- });
314
-
315
- Deno.test("Without Ratio", function () {
316
- assertEquals(
317
- tinycolor({ r: 1, g: 1, b: 1 }).toHexString(),
318
- "#010101",
319
- "010101"
320
- );
321
- assertEquals(
322
- tinycolor({ r: 0.1, g: 0.1, b: 0.1 }).toHexString(),
323
- "#000000",
324
- "000000"
325
- );
326
- assertEquals(tinycolor("rgb .1 .1 .1").toHexString(), "#000000", "000000");
327
- });
328
-
329
- Deno.test("RGB Text Parsing", function () {
330
- assertEquals(
331
- tinycolor("rgb 255 0 0").toHexString(),
332
- "#ff0000",
333
- "spaced input"
334
- );
335
- assertEquals(
336
- tinycolor("rgb(255, 0, 0)").toHexString(),
337
- "#ff0000",
338
- "parenthesized input"
339
- );
340
- assertEquals(
341
- tinycolor("rgb (255, 0, 0)").toHexString(),
342
- "#ff0000",
343
- "parenthesized spaced input"
344
- );
345
- assertEquals(
346
- tinycolor({ r: 255, g: 0, b: 0 }).toHexString(),
347
- "#ff0000",
348
- "object input"
349
- );
350
- assertEquals(
351
- tinycolor({ r: 255, g: 0, b: 0 }).toRgb(),
352
- {
353
- r: 255,
354
- g: 0,
355
- b: 0,
356
- a: 1,
357
- },
358
- "object input and compare"
359
- );
360
-
361
- assert(tinycolor.equals({ r: 200, g: 100, b: 0 }, "rgb(200, 100, 0)"));
362
- assert(tinycolor.equals({ r: 200, g: 100, b: 0 }, "rgb 200 100 0"));
363
- assert(tinycolor.equals({ r: 200, g: 100, b: 0 }, "rgb 200 100 0"));
364
- assert(
365
- tinycolor.equals({ r: 200, g: 100, b: 0, a: 0.4 }, "rgba 200 100 0 .4")
366
- );
367
- assert(!tinycolor.equals({ r: 199, g: 100, b: 0 }, "rgba 200 100 0 1"));
368
-
369
- assert(!tinycolor.equals({ r: 199, g: 100, b: 0 }, "rgb(200, 100, 0)"));
370
- assert(!tinycolor.equals({ r: 199, g: 100, b: 0 }, "rgb 200 100 0"));
371
- assert(!tinycolor.equals({ r: 199, g: 100, b: 0 }, "rgb 200 100 0"));
372
-
373
- assert(
374
- tinycolor.equals(tinycolor({ r: 200, g: 100, b: 0 }), "rgb(200, 100, 0)")
375
- );
376
- assert(
377
- tinycolor.equals(tinycolor({ r: 200, g: 100, b: 0 }), "rgb 200 100 0")
378
- );
379
- assert(
380
- tinycolor.equals(tinycolor({ r: 200, g: 100, b: 0 }), "rgb 200 100 0")
381
- );
382
- });
383
-
384
- Deno.test("Percentage RGB Text Parsing", function () {
385
- assertEquals(
386
- tinycolor("rgb 100% 0% 0%").toHexString(),
387
- "#ff0000",
388
- "spaced input"
389
- );
390
- assertEquals(
391
- tinycolor("rgb(100%, 0%, 0%)").toHexString(),
392
- "#ff0000",
393
- "parenthesized input"
394
- );
395
- assertEquals(
396
- tinycolor("rgb (100%, 0%, 0%)").toHexString(),
397
- "#ff0000",
398
- "parenthesized spaced input"
399
- );
400
- assertEquals(
401
- tinycolor({ r: "100%", g: "0%", b: "0%" }).toHexString(),
402
- "#ff0000",
403
- "object input"
404
- );
405
- assertEquals(
406
- tinycolor({ r: "100%", g: "0%", b: "0%" }).toRgb(),
407
- {
408
- r: 255,
409
- g: 0,
410
- b: 0,
411
- a: 1,
412
- },
413
- "object input and compare"
414
- );
415
-
416
- assert(
417
- tinycolor.equals({ r: "90%", g: "45%", b: "0%" }, "rgb(90%, 45%, 0%)")
418
- );
419
- assert(tinycolor.equals({ r: "90%", g: "45%", b: "0%" }, "rgb 90% 45% 0%"));
420
- assert(tinycolor.equals({ r: "90%", g: "45%", b: "0%" }, "rgb 90% 45% 0%"));
421
- assert(
422
- tinycolor.equals(
423
- { r: "90%", g: "45%", b: "0%", a: 0.4 },
424
- "rgba 90% 45% 0% .4"
425
- )
426
- );
427
- assert(
428
- !tinycolor.equals({ r: "89%", g: "45%", b: "0%" }, "rgba 90% 45% 0% 1")
429
- );
430
-
431
- assert(
432
- !tinycolor.equals({ r: "89%", g: "45%", b: "0%" }, "rgb(90%, 45%, 0%)")
433
- );
434
- assert(!tinycolor.equals({ r: "89%", g: "45%", b: "0%" }, "rgb 90% 45% 0%"));
435
- assert(!tinycolor.equals({ r: "89%", g: "45%", b: "0%" }, "rgb 90% 45% 0%"));
436
-
437
- assert(
438
- tinycolor.equals(
439
- tinycolor({ r: "90%", g: "45%", b: "0%" }),
440
- "rgb(90%, 45%, 0%)"
441
- )
442
- );
443
- assert(
444
- tinycolor.equals(
445
- tinycolor({ r: "90%", g: "45%", b: "0%" }),
446
- "rgb 90% 45% 0%"
447
- )
448
- );
449
- assert(
450
- tinycolor.equals(
451
- tinycolor({ r: "90%", g: "45%", b: "0%" }),
452
- "rgb 90% 45% 0%"
453
- )
454
- );
455
- });
456
-
457
- Deno.test("HSL parsing", function () {
458
- assertEquals(
459
- tinycolor({ h: 251, s: 100, l: 0.38 }).toHexString(),
460
- "#2400c2",
461
- "to hex"
462
- );
463
- assertEquals(
464
- tinycolor({ h: 251, s: 100, l: 0.38 }).toRgbString(),
465
- "rgb(36, 0, 194)",
466
- "to rgb"
467
- );
468
- assertEquals(
469
- tinycolor({ h: 251, s: 100, l: 0.38 }).toHslString(),
470
- "hsl(251, 100%, 38%)",
471
- "to hsl"
472
- );
473
- assertEquals(
474
- tinycolor({ h: 251, s: 100, l: 0.38, a: 0.5 }).toHslString(),
475
- "hsla(251, 100%, 38%, 0.5)",
476
- "to hsla"
477
- );
478
- assertEquals(
479
- tinycolor("hsl(251, 100, 38)").toHexString(),
480
- "#2400c2",
481
- "to hex"
482
- );
483
- assertEquals(
484
- tinycolor("hsl(251, 100%, 38%)").toRgbString(),
485
- "rgb(36, 0, 194)",
486
- "to rgb"
487
- );
488
- assertEquals(
489
- tinycolor("hsl(251, 100%, 38%)").toHslString(),
490
- "hsl(251, 100%, 38%)",
491
- "to hsl"
492
- );
493
- assertEquals(
494
- tinycolor("hsl 100 20 10").toHslString(),
495
- "hsl(100, 20%, 10%)",
496
- "problematic hsl"
497
- );
498
- });
499
-
500
- Deno.test("Hex Parsing", function () {
501
- assertEquals(tinycolor("rgb 255 0 0").toHexString(), "#ff0000");
502
- assertEquals(tinycolor("rgb 255 0 0").toHexString(true), "#f00");
503
-
504
- assertEquals(tinycolor("rgba 255 0 0 0.5").toHex8String(), "#ff000080");
505
- assertEquals(tinycolor("rgba 255 0 0 0").toHex8String(), "#ff000000");
506
- assertEquals(tinycolor("rgba 255 0 0 1").toHex8String(), "#ff0000ff");
507
- assertEquals(tinycolor("rgba 255 0 0 1").toHex8String(true), "#f00f");
508
-
509
- assertEquals(tinycolor("rgb 255 0 0").toHex(), "ff0000");
510
- assertEquals(tinycolor("rgb 255 0 0").toHex(true), "f00");
511
- assertEquals(tinycolor("rgba 255 0 0 0.5").toHex8(), "ff000080");
512
- });
513
-
514
- Deno.test("HSV Parsing", function () {
515
- assertEquals(
516
- tinycolor("hsv 251.1 0.887 .918").toHsvString(),
517
- "hsv(251, 89%, 92%)"
518
- );
519
- assertEquals(
520
- tinycolor("hsv 251.1 0.887 0.918").toHsvString(),
521
- "hsv(251, 89%, 92%)"
522
- );
523
- assertEquals(
524
- tinycolor("hsva 251.1 0.887 0.918 0.5").toHsvString(),
525
- "hsva(251, 89%, 92%, 0.5)"
526
- );
527
- });
528
-
529
- Deno.test("Invalid Parsing", function () {
530
- var invalidColor = tinycolor("this is not a color");
531
- assertEquals(invalidColor.toHexString(), "#000000");
532
- assertEquals(false, invalidColor.isValid());
533
-
534
- invalidColor = tinycolor("#red");
535
- assertEquals(invalidColor.toHexString(), "#000000");
536
- assertEquals(false, invalidColor.isValid());
537
-
538
- invalidColor = tinycolor(" #red");
539
- assertEquals(invalidColor.toHexString(), "#000000");
540
- assertEquals(false, invalidColor.isValid());
541
-
542
- invalidColor = tinycolor("##123456");
543
- assertEquals(invalidColor.toHexString(), "#000000");
544
- assertEquals(false, invalidColor.isValid());
545
-
546
- invalidColor = tinycolor(" ##123456");
547
- assertEquals(invalidColor.toHexString(), "#000000");
548
- assertEquals(false, invalidColor.isValid());
549
-
550
- invalidColor = tinycolor({ r: "invalid", g: "invalid", b: "invalid" });
551
- assertEquals(invalidColor.toHexString(), "#000000");
552
- assertEquals(false, invalidColor.isValid());
553
-
554
- invalidColor = tinycolor({ h: "invalid", s: "invalid", l: "invalid" });
555
- assertEquals(invalidColor.toHexString(), "#000000");
556
- assertEquals(false, invalidColor.isValid());
557
-
558
- invalidColor = tinycolor({ h: "invalid", s: "invalid", v: "invalid" });
559
- assertEquals(invalidColor.toHexString(), "#000000");
560
- assertEquals(false, invalidColor.isValid());
561
- });
562
-
563
- Deno.test("Named colors", function () {
564
- assertEquals(tinycolor("aliceblue").toHex(), "f0f8ff");
565
- assertEquals(tinycolor("antiquewhite").toHex(), "faebd7");
566
- assertEquals(tinycolor("aqua").toHex(), "00ffff");
567
- assertEquals(tinycolor("aquamarine").toHex(), "7fffd4");
568
- assertEquals(tinycolor("azure").toHex(), "f0ffff");
569
- assertEquals(tinycolor("beige").toHex(), "f5f5dc");
570
- assertEquals(tinycolor("bisque").toHex(), "ffe4c4");
571
- assertEquals(tinycolor("black").toHex(), "000000");
572
- assertEquals(tinycolor("blanchedalmond").toHex(), "ffebcd");
573
- assertEquals(tinycolor("blue").toHex(), "0000ff");
574
- assertEquals(tinycolor("blueviolet").toHex(), "8a2be2");
575
- assertEquals(tinycolor("brown").toHex(), "a52a2a");
576
- assertEquals(tinycolor("burlywood").toHex(), "deb887");
577
- assertEquals(tinycolor("cadetblue").toHex(), "5f9ea0");
578
- assertEquals(tinycolor("chartreuse").toHex(), "7fff00");
579
- assertEquals(tinycolor("chocolate").toHex(), "d2691e");
580
- assertEquals(tinycolor("coral").toHex(), "ff7f50");
581
- assertEquals(tinycolor("cornflowerblue").toHex(), "6495ed");
582
- assertEquals(tinycolor("cornsilk").toHex(), "fff8dc");
583
- assertEquals(tinycolor("crimson").toHex(), "dc143c");
584
- assertEquals(tinycolor("cyan").toHex(), "00ffff");
585
- assertEquals(tinycolor("darkblue").toHex(), "00008b");
586
- assertEquals(tinycolor("darkcyan").toHex(), "008b8b");
587
- assertEquals(tinycolor("darkgoldenrod").toHex(), "b8860b");
588
- assertEquals(tinycolor("darkgray").toHex(), "a9a9a9");
589
- assertEquals(tinycolor("darkgreen").toHex(), "006400");
590
- assertEquals(tinycolor("darkkhaki").toHex(), "bdb76b");
591
- assertEquals(tinycolor("darkmagenta").toHex(), "8b008b");
592
- assertEquals(tinycolor("darkolivegreen").toHex(), "556b2f");
593
- assertEquals(tinycolor("darkorange").toHex(), "ff8c00");
594
- assertEquals(tinycolor("darkorchid").toHex(), "9932cc");
595
- assertEquals(tinycolor("darkred").toHex(), "8b0000");
596
- assertEquals(tinycolor("darksalmon").toHex(), "e9967a");
597
- assertEquals(tinycolor("darkseagreen").toHex(), "8fbc8f");
598
- assertEquals(tinycolor("darkslateblue").toHex(), "483d8b");
599
- assertEquals(tinycolor("darkslategray").toHex(), "2f4f4f");
600
- assertEquals(tinycolor("darkturquoise").toHex(), "00ced1");
601
- assertEquals(tinycolor("darkviolet").toHex(), "9400d3");
602
- assertEquals(tinycolor("deeppink").toHex(), "ff1493");
603
- assertEquals(tinycolor("deepskyblue").toHex(), "00bfff");
604
- assertEquals(tinycolor("dimgray").toHex(), "696969");
605
- assertEquals(tinycolor("dodgerblue").toHex(), "1e90ff");
606
- assertEquals(tinycolor("firebrick").toHex(), "b22222");
607
- assertEquals(tinycolor("floralwhite").toHex(), "fffaf0");
608
- assertEquals(tinycolor("forestgreen").toHex(), "228b22");
609
- assertEquals(tinycolor("fuchsia").toHex(), "ff00ff");
610
- assertEquals(tinycolor("gainsboro").toHex(), "dcdcdc");
611
- assertEquals(tinycolor("ghostwhite").toHex(), "f8f8ff");
612
- assertEquals(tinycolor("gold").toHex(), "ffd700");
613
- assertEquals(tinycolor("goldenrod").toHex(), "daa520");
614
- assertEquals(tinycolor("gray").toHex(), "808080");
615
- assertEquals(tinycolor("grey").toHex(), "808080");
616
- assertEquals(tinycolor("green").toHex(), "008000");
617
- assertEquals(tinycolor("greenyellow").toHex(), "adff2f");
618
- assertEquals(tinycolor("honeydew").toHex(), "f0fff0");
619
- assertEquals(tinycolor("hotpink").toHex(), "ff69b4");
620
- assertEquals(tinycolor("indianred ").toHex(), "cd5c5c");
621
- assertEquals(tinycolor("indigo ").toHex(), "4b0082");
622
- assertEquals(tinycolor("ivory").toHex(), "fffff0");
623
- assertEquals(tinycolor("khaki").toHex(), "f0e68c");
624
- assertEquals(tinycolor("lavender").toHex(), "e6e6fa");
625
- assertEquals(tinycolor("lavenderblush").toHex(), "fff0f5");
626
- assertEquals(tinycolor("lawngreen").toHex(), "7cfc00");
627
- assertEquals(tinycolor("lemonchiffon").toHex(), "fffacd");
628
- assertEquals(tinycolor("lightblue").toHex(), "add8e6");
629
- assertEquals(tinycolor("lightcoral").toHex(), "f08080");
630
- assertEquals(tinycolor("lightcyan").toHex(), "e0ffff");
631
- assertEquals(tinycolor("lightgoldenrodyellow").toHex(), "fafad2");
632
- assertEquals(tinycolor("lightgrey").toHex(), "d3d3d3");
633
- assertEquals(tinycolor("lightgreen").toHex(), "90ee90");
634
- assertEquals(tinycolor("lightpink").toHex(), "ffb6c1");
635
- assertEquals(tinycolor("lightsalmon").toHex(), "ffa07a");
636
- assertEquals(tinycolor("lightseagreen").toHex(), "20b2aa");
637
- assertEquals(tinycolor("lightskyblue").toHex(), "87cefa");
638
- assertEquals(tinycolor("lightslategray").toHex(), "778899");
639
- assertEquals(tinycolor("lightsteelblue").toHex(), "b0c4de");
640
- assertEquals(tinycolor("lightyellow").toHex(), "ffffe0");
641
- assertEquals(tinycolor("lime").toHex(), "00ff00");
642
- assertEquals(tinycolor("limegreen").toHex(), "32cd32");
643
- assertEquals(tinycolor("linen").toHex(), "faf0e6");
644
- assertEquals(tinycolor("magenta").toHex(), "ff00ff");
645
- assertEquals(tinycolor("maroon").toHex(), "800000");
646
- assertEquals(tinycolor("mediumaquamarine").toHex(), "66cdaa");
647
- assertEquals(tinycolor("mediumblue").toHex(), "0000cd");
648
- assertEquals(tinycolor("mediumorchid").toHex(), "ba55d3");
649
- assertEquals(tinycolor("mediumpurple").toHex(), "9370db");
650
- assertEquals(tinycolor("mediumseagreen").toHex(), "3cb371");
651
- assertEquals(tinycolor("mediumslateblue").toHex(), "7b68ee");
652
- assertEquals(tinycolor("mediumspringgreen").toHex(), "00fa9a");
653
- assertEquals(tinycolor("mediumturquoise").toHex(), "48d1cc");
654
- assertEquals(tinycolor("mediumvioletred").toHex(), "c71585");
655
- assertEquals(tinycolor("midnightblue").toHex(), "191970");
656
- assertEquals(tinycolor("mintcream").toHex(), "f5fffa");
657
- assertEquals(tinycolor("mistyrose").toHex(), "ffe4e1");
658
- assertEquals(tinycolor("moccasin").toHex(), "ffe4b5");
659
- assertEquals(tinycolor("navajowhite").toHex(), "ffdead");
660
- assertEquals(tinycolor("navy").toHex(), "000080");
661
- assertEquals(tinycolor("oldlace").toHex(), "fdf5e6");
662
- assertEquals(tinycolor("olive").toHex(), "808000");
663
- assertEquals(tinycolor("olivedrab").toHex(), "6b8e23");
664
- assertEquals(tinycolor("orange").toHex(), "ffa500");
665
- assertEquals(tinycolor("orangered").toHex(), "ff4500");
666
- assertEquals(tinycolor("orchid").toHex(), "da70d6");
667
- assertEquals(tinycolor("palegoldenrod").toHex(), "eee8aa");
668
- assertEquals(tinycolor("palegreen").toHex(), "98fb98");
669
- assertEquals(tinycolor("paleturquoise").toHex(), "afeeee");
670
- assertEquals(tinycolor("palevioletred").toHex(), "db7093");
671
- assertEquals(tinycolor("papayawhip").toHex(), "ffefd5");
672
- assertEquals(tinycolor("peachpuff").toHex(), "ffdab9");
673
- assertEquals(tinycolor("peru").toHex(), "cd853f");
674
- assertEquals(tinycolor("pink").toHex(), "ffc0cb");
675
- assertEquals(tinycolor("plum").toHex(), "dda0dd");
676
- assertEquals(tinycolor("powderblue").toHex(), "b0e0e6");
677
- assertEquals(tinycolor("purple").toHex(), "800080");
678
- assertEquals(tinycolor("rebeccapurple").toHex(), "663399");
679
- assertEquals(tinycolor("red").toHex(), "ff0000");
680
- assertEquals(tinycolor("rosybrown").toHex(), "bc8f8f");
681
- assertEquals(tinycolor("royalblue").toHex(), "4169e1");
682
- assertEquals(tinycolor("saddlebrown").toHex(), "8b4513");
683
- assertEquals(tinycolor("salmon").toHex(), "fa8072");
684
- assertEquals(tinycolor("sandybrown").toHex(), "f4a460");
685
- assertEquals(tinycolor("seagreen").toHex(), "2e8b57");
686
- assertEquals(tinycolor("seashell").toHex(), "fff5ee");
687
- assertEquals(tinycolor("sienna").toHex(), "a0522d");
688
- assertEquals(tinycolor("silver").toHex(), "c0c0c0");
689
- assertEquals(tinycolor("skyblue").toHex(), "87ceeb");
690
- assertEquals(tinycolor("slateblue").toHex(), "6a5acd");
691
- assertEquals(tinycolor("slategray").toHex(), "708090");
692
- assertEquals(tinycolor("snow").toHex(), "fffafa");
693
- assertEquals(tinycolor("springgreen").toHex(), "00ff7f");
694
- assertEquals(tinycolor("steelblue").toHex(), "4682b4");
695
- assertEquals(tinycolor("tan").toHex(), "d2b48c");
696
- assertEquals(tinycolor("teal").toHex(), "008080");
697
- assertEquals(tinycolor("thistle").toHex(), "d8bfd8");
698
- assertEquals(tinycolor("tomato").toHex(), "ff6347");
699
- assertEquals(tinycolor("turquoise").toHex(), "40e0d0");
700
- assertEquals(tinycolor("violet").toHex(), "ee82ee");
701
- assertEquals(tinycolor("wheat").toHex(), "f5deb3");
702
- assertEquals(tinycolor("white").toHex(), "ffffff");
703
- assertEquals(tinycolor("whitesmoke").toHex(), "f5f5f5");
704
- assertEquals(tinycolor("yellow").toHex(), "ffff00");
705
- assertEquals(tinycolor("yellowgreen").toHex(), "9acd32");
706
-
707
- assertEquals(tinycolor("#f00").toName(), "red");
708
- assertEquals(tinycolor("#fa0a0a").toName(), false);
709
- });
710
-
711
- Deno.test("Invalid alpha should normalize to 1", function () {
712
- assertEquals(
713
- tinycolor({ r: 255, g: 20, b: 10, a: -1 }).toRgbString(),
714
- "rgb(255, 20, 10)",
715
- "Negative value"
716
- );
717
- assertEquals(
718
- tinycolor({ r: 255, g: 20, b: 10, a: -0 }).toRgbString(),
719
- "rgba(255, 20, 10, 0)",
720
- "Negative 0"
721
- );
722
- assertEquals(
723
- tinycolor({ r: 255, g: 20, b: 10, a: 0 }).toRgbString(),
724
- "rgba(255, 20, 10, 0)",
725
- "0"
726
- );
727
- assertEquals(
728
- tinycolor({ r: 255, g: 20, b: 10, a: 0.5 }).toRgbString(),
729
- "rgba(255, 20, 10, 0.5)",
730
- ".5"
731
- );
732
- assertEquals(
733
- tinycolor({ r: 255, g: 20, b: 10, a: 1 }).toRgbString(),
734
- "rgb(255, 20, 10)",
735
- "1"
736
- );
737
- assertEquals(
738
- tinycolor({ r: 255, g: 20, b: 10, a: 100 }).toRgbString(),
739
- "rgb(255, 20, 10)",
740
- "Greater than 1"
741
- );
742
- assertEquals(
743
- tinycolor({ r: 255, g: 20, b: 10, a: "asdfasd" }).toRgbString(),
744
- "rgb(255, 20, 10)",
745
- "Non Numeric"
746
- );
747
-
748
- assertEquals(
749
- tinycolor("#fff").toRgbString(),
750
- "rgb(255, 255, 255)",
751
- "Hex should be 1"
752
- );
753
- assertEquals(
754
- tinycolor("rgba 255 0 0 100").toRgbString(),
755
- "rgb(255, 0, 0)",
756
- "Greater than 1 in string parsing"
757
- );
758
- });
759
-
760
- Deno.test("toString() with alpha set", function () {
761
- var redNamed = tinycolor.fromRatio(
762
- { r: 255, g: 0, b: 0, a: 0.6 },
763
- {
764
- format: "name",
765
- }
766
- );
767
- var transparentNamed = tinycolor.fromRatio(
768
- { r: 255, g: 0, b: 0, a: 0 },
769
- {
770
- format: "name",
771
- }
772
- );
773
- var redHex = tinycolor.fromRatio(
774
- { r: 255, g: 0, b: 0, a: 0.4 },
775
- {
776
- format: "hex",
777
- }
778
- );
779
-
780
- assertEquals(redNamed.getFormat(), "name", "getFormat() is correct");
781
- assertEquals(redHex.getFormat(), "hex", "getFormat() is correct");
782
-
783
- assertEquals(
784
- redNamed.toString(),
785
- "rgba(255, 0, 0, 0.6)",
786
- "Names should default to rgba if alpha is < 1"
787
- );
788
- assertEquals(
789
- redHex.toString(),
790
- "rgba(255, 0, 0, 0.4)",
791
- "Hex should default to rgba if alpha is < 1"
792
- );
793
-
794
- assertEquals(
795
- redNamed.toString("hex"),
796
- "#ff0000",
797
- "Names should not be returned as rgba if format is specified"
798
- );
799
- assertEquals(
800
- redNamed.toString("hex6"),
801
- "#ff0000",
802
- "Names should not be returned as rgba if format is specified"
803
- );
804
- assertEquals(
805
- redNamed.toString("hex3"),
806
- "#f00",
807
- "Names should not be returned as rgba if format is specified"
808
- );
809
- assertEquals(
810
- redNamed.toString("hex8"),
811
- "#ff000099",
812
- "Names should not be returned as rgba if format is specified"
813
- );
814
- assertEquals(
815
- redNamed.toString("hex4"),
816
- "#f009",
817
- "Names should not be returned as rgba if format is specified"
818
- );
819
- assertEquals(
820
- redNamed.toString("name"),
821
- "#ff0000",
822
- "Semi transparent names should return hex in toString() if name format is specified"
823
- );
824
-
825
- assertEquals(
826
- redNamed.toName(),
827
- false,
828
- "Semi transparent names should be false in toName()"
829
- );
830
-
831
- assertEquals(
832
- redHex.toString(),
833
- "rgba(255, 0, 0, 0.4)",
834
- "Hex should default to rgba if alpha is < 1"
835
- );
836
- assertEquals(
837
- transparentNamed.toString(),
838
- "transparent",
839
- "Named color should equal transparent if alpha == 0"
840
- );
841
-
842
- redHex.setAlpha(0);
843
- assertEquals(
844
- redHex.toString(),
845
- "rgba(255, 0, 0, 0)",
846
- "Hex should default to rgba if alpha is = 0"
847
- );
848
- });
849
-
850
- Deno.test("setting alpha", function () {
851
- var hexSetter = tinycolor("rgba(255, 0, 0, 1)");
852
- assertEquals(hexSetter.getAlpha(), 1, "Alpha should start as 1");
853
- var returnedFromSetAlpha = hexSetter.setAlpha(0.9);
854
- assertEquals(
855
- returnedFromSetAlpha,
856
- hexSetter,
857
- "setAlpha return value should be the color."
858
- );
859
- assertEquals(hexSetter.getAlpha(), 0.9, "setAlpha should change alpha value");
860
- hexSetter.setAlpha(0.5);
861
- assertEquals(hexSetter.getAlpha(), 0.5, "setAlpha should change alpha value");
862
- hexSetter.setAlpha(0);
863
- assertEquals(hexSetter.getAlpha(), 0, "setAlpha should change alpha value");
864
- hexSetter.setAlpha(-1);
865
- assertEquals(
866
- hexSetter.getAlpha(),
867
- 1,
868
- "setAlpha with value < 0 should be bound to 1"
869
- );
870
- hexSetter.setAlpha(2);
871
- assertEquals(
872
- hexSetter.getAlpha(),
873
- 1,
874
- "setAlpha with value > 1 should be bound to 1"
875
- );
876
- hexSetter.setAlpha();
877
- assertEquals(
878
- hexSetter.getAlpha(),
879
- 1,
880
- "setAlpha with invalid value should be bound to 1"
881
- );
882
- hexSetter.setAlpha(null);
883
- assertEquals(
884
- hexSetter.getAlpha(),
885
- 1,
886
- "setAlpha with invalid value should be bound to 1"
887
- );
888
- hexSetter.setAlpha("test");
889
- assertEquals(
890
- hexSetter.getAlpha(),
891
- 1,
892
- "setAlpha with invalid value should be bound to 1"
893
- );
894
- });
895
-
896
- Deno.test("Alpha = 0 should act differently on toName()", function () {
897
- assertEquals(
898
- tinycolor({ r: 255, g: 20, b: 10, a: 0 }).toName(),
899
- "transparent",
900
- "0"
901
- );
902
- assertEquals(
903
- tinycolor("transparent").toString(),
904
- "transparent",
905
- "toString when passed"
906
- );
907
- assertEquals(tinycolor("transparent").toHex(), "000000", "toHex");
908
- });
909
-
910
- Deno.test("getBrightness", function () {
911
- assertEquals(tinycolor("#000").getBrightness(), 0, "returns 0 for #000");
912
- assertEquals(tinycolor("#fff").getBrightness(), 255, "returns 255 for #fff");
913
- });
914
-
915
- Deno.test("getLuminance", function () {
916
- assertEquals(tinycolor("#000").getLuminance(), 0, "returns 0 for #000");
917
- assertEquals(tinycolor("#fff").getLuminance(), 1, "returns 1 for #fff");
918
- });
919
-
920
- Deno.test("isDark returns true/false for dark/light colors", function () {
921
- assertEquals(tinycolor("#000").isDark(), true, "#000 is dark");
922
- assertEquals(tinycolor("#111").isDark(), true, "#111 is dark");
923
- assertEquals(tinycolor("#222").isDark(), true, "#222 is dark");
924
- assertEquals(tinycolor("#333").isDark(), true, "#333 is dark");
925
- assertEquals(tinycolor("#444").isDark(), true, "#444 is dark");
926
- assertEquals(tinycolor("#555").isDark(), true, "#555 is dark");
927
- assertEquals(tinycolor("#666").isDark(), true, "#666 is dark");
928
- assertEquals(tinycolor("#777").isDark(), true, "#777 is dark");
929
- assertEquals(tinycolor("#888").isDark(), false, "#888 is not dark");
930
- assertEquals(tinycolor("#999").isDark(), false, "#999 is not dark");
931
- assertEquals(tinycolor("#aaa").isDark(), false, "#aaa is not dark");
932
- assertEquals(tinycolor("#bbb").isDark(), false, "#bbb is not dark");
933
- assertEquals(tinycolor("#ccc").isDark(), false, "#ccc is not dark");
934
- assertEquals(tinycolor("#ddd").isDark(), false, "#ddd is not dark");
935
- assertEquals(tinycolor("#eee").isDark(), false, "#eee is not dark");
936
- assertEquals(tinycolor("#fff").isDark(), false, "#fff is not dark");
937
- });
938
-
939
- Deno.test("isLight returns true/false for light/dark colors", function () {
940
- assertEquals(tinycolor("#000").isLight(), false, "#000 is not light");
941
- assertEquals(tinycolor("#111").isLight(), false, "#111 is not light");
942
- assertEquals(tinycolor("#222").isLight(), false, "#222 is not light");
943
- assertEquals(tinycolor("#333").isLight(), false, "#333 is not light");
944
- assertEquals(tinycolor("#444").isLight(), false, "#444 is not light");
945
- assertEquals(tinycolor("#555").isLight(), false, "#555 is not light");
946
- assertEquals(tinycolor("#666").isLight(), false, "#666 is not light");
947
- assertEquals(tinycolor("#777").isLight(), false, "#777 is not light");
948
- assertEquals(tinycolor("#888").isLight(), true, "#888 is light");
949
- assertEquals(tinycolor("#999").isLight(), true, "#999 is light");
950
- assertEquals(tinycolor("#aaa").isLight(), true, "#aaa is light");
951
- assertEquals(tinycolor("#bbb").isLight(), true, "#bbb is light");
952
- assertEquals(tinycolor("#ccc").isLight(), true, "#ccc is light");
953
- assertEquals(tinycolor("#ddd").isLight(), true, "#ddd is light");
954
- assertEquals(tinycolor("#eee").isLight(), true, "#eee is light");
955
- assertEquals(tinycolor("#fff").isLight(), true, "#fff is light");
956
- });
957
-
958
- Deno.test("HSL Object", function () {
959
- for (var i = 0; i < conversions.length; i++) {
960
- var c = conversions[i];
961
- var tiny = tinycolor(c.hex);
962
- assertEquals(
963
- tiny.toHexString(),
964
- tinycolor(tiny.toHsl()).toHexString(),
965
- "HSL Object"
966
- );
967
- }
968
- });
969
-
970
- Deno.test("HSL String", function () {
971
- for (var i = 0; i < conversions.length; i++) {
972
- var c = conversions[i];
973
- var tiny = tinycolor(c.hex);
974
- var input = tiny.toRgb();
975
- var output = tinycolor(tiny.toHslString()).toRgb();
976
- var maxDiff = 2;
977
-
978
- assertEquals(
979
- Math.abs(input.r - output.r) <= maxDiff,
980
- true,
981
- "toHslString red value difference <= " + maxDiff
982
- );
983
- assertEquals(
984
- Math.abs(input.g - output.g) <= maxDiff,
985
- true,
986
- "toHslString green value difference <= " + maxDiff
987
- );
988
- assertEquals(
989
- Math.abs(input.b - output.b) <= maxDiff,
990
- true,
991
- "toHslString blue value difference <= " + maxDiff
992
- );
993
- }
994
- });
995
-
996
- Deno.test("HSV String", function () {
997
- for (var i = 0; i < conversions.length; i++) {
998
- var c = conversions[i];
999
- var tiny = tinycolor(c.hex);
1000
- var input = tiny.toRgb();
1001
- var output = tinycolor(tiny.toHsvString()).toRgb();
1002
- var maxDiff = 2;
1003
-
1004
- assertEquals(
1005
- Math.abs(input.r - output.r) <= maxDiff,
1006
- true,
1007
- "toHsvString red value difference <= " + maxDiff
1008
- );
1009
- assertEquals(
1010
- Math.abs(input.g - output.g) <= maxDiff,
1011
- true,
1012
- "toHsvString green value difference <= " + maxDiff
1013
- );
1014
- assertEquals(
1015
- Math.abs(input.b - output.b) <= maxDiff,
1016
- true,
1017
- "toHsvString blue value difference <= " + maxDiff
1018
- );
1019
- }
1020
- });
1021
-
1022
- Deno.test("HSV Object", function () {
1023
- for (var i = 0; i < conversions.length; i++) {
1024
- var c = conversions[i];
1025
- var tiny = tinycolor(c.hex);
1026
- assertEquals(
1027
- tiny.toHexString(),
1028
- tinycolor(tiny.toHsv()).toHexString(),
1029
- "HSV Object"
1030
- );
1031
- }
1032
- });
1033
-
1034
- Deno.test("RGB Object", function () {
1035
- for (var i = 0; i < conversions.length; i++) {
1036
- var c = conversions[i];
1037
- var tiny = tinycolor(c.hex);
1038
- assertEquals(
1039
- tiny.toHexString(),
1040
- tinycolor(tiny.toRgb()).toHexString(),
1041
- "RGB Object"
1042
- );
1043
- }
1044
- });
1045
-
1046
- Deno.test("RGB String", function () {
1047
- for (var i = 0; i < conversions.length; i++) {
1048
- var c = conversions[i];
1049
- var tiny = tinycolor(c.hex);
1050
- assertEquals(
1051
- tiny.toHexString(),
1052
- tinycolor(tiny.toRgbString()).toHexString(),
1053
- "RGB String"
1054
- );
1055
- }
1056
- });
1057
-
1058
- Deno.test("PRGB Object", function () {
1059
- for (var i = 0; i < conversions.length; i++) {
1060
- var c = conversions[i];
1061
- var tiny = tinycolor(c.hex);
1062
- var input = tiny.toRgb();
1063
- var output = tinycolor(tiny.toPercentageRgb()).toRgb();
1064
- var maxDiff = 2;
1065
-
1066
- assertEquals(
1067
- Math.abs(input.r - output.r) <= maxDiff,
1068
- true,
1069
- "Red value difference <= " + maxDiff
1070
- );
1071
- assertEquals(
1072
- Math.abs(input.g - output.g) <= maxDiff,
1073
- true,
1074
- "Green value difference <= " + maxDiff
1075
- );
1076
- assertEquals(
1077
- Math.abs(input.b - output.b) <= maxDiff,
1078
- true,
1079
- "Blue value difference <= " + maxDiff
1080
- );
1081
- }
1082
- });
1083
-
1084
- Deno.test("PRGB String", function () {
1085
- for (var i = 0; i < conversions.length; i++) {
1086
- var c = conversions[i];
1087
- var tiny = tinycolor(c.hex);
1088
- var input = tiny.toRgb();
1089
- var output = tinycolor(tiny.toPercentageRgbString()).toRgb();
1090
- var maxDiff = 2;
1091
-
1092
- assertEquals(
1093
- Math.abs(input.r - output.r) <= maxDiff,
1094
- true,
1095
- "Red value difference <= " + maxDiff
1096
- );
1097
- assertEquals(
1098
- Math.abs(input.g - output.g) <= maxDiff,
1099
- true,
1100
- "Green value difference <= " + maxDiff
1101
- );
1102
- assertEquals(
1103
- Math.abs(input.b - output.b) <= maxDiff,
1104
- true,
1105
- "Blue value difference <= " + maxDiff
1106
- );
1107
- }
1108
- });
1109
-
1110
- Deno.test("Object", function () {
1111
- for (var i = 0; i < conversions.length; i++) {
1112
- var c = conversions[i];
1113
- var tiny = tinycolor(c.hex);
1114
- assertEquals(tiny.toHexString(), tinycolor(tiny).toHexString(), "Object");
1115
- }
1116
- });
1117
-
1118
- Deno.test("Color equality", function () {
1119
- assert(tinycolor.equals("#ff0000", "#ff0000"), "Same hex");
1120
- assert(tinycolor.equals("#ff0000", "rgb(255, 0, 0)"), "Same alphas");
1121
- assert(
1122
- !tinycolor.equals("#ff0000", "rgba(255, 0, 0, .1)"),
1123
- "Different alphas"
1124
- );
1125
- assert(tinycolor.equals("#ff000066", "rgba(255, 0, 0, .4)"), "Same alphas");
1126
- assert(tinycolor.equals("#f009", "rgba(255, 0, 0, .6)"), "Same alphas");
1127
- assert(tinycolor.equals("#336699CC", "369C"), "Same hex");
1128
- assert(tinycolor.equals("ff0000", "#ff0000"), "Same hex");
1129
- assert(tinycolor.equals("#f00", "#ff0000"), "Same hex");
1130
- assert(tinycolor.equals("#f00", "#ff0000"), "Same hex");
1131
- assert(tinycolor.equals("f00", "#ff0000"), "Same hex");
1132
- assertEquals(tinycolor("010101").toHexString(), "#010101");
1133
- assert(!tinycolor.equals("#ff0000", "#00ff00"), "Different hex");
1134
- assert(
1135
- tinycolor.equals("#ff8000", "rgb(100%, 50%, 0%)"),
1136
- "Percentage bounds checking"
1137
- );
1138
- });
1139
-
1140
- Deno.test("isReadable", function () {
1141
- // "#ff0088", "#8822aa" (values used in old WCAG1 tests)
1142
- assert(
1143
- tinycolor.isReadable("#000000", "#ffffff", { level: "AA", size: "small" }),
1144
- "white/black is readable"
1145
- );
1146
- assert(
1147
- !tinycolor.isReadable("#ff0088", "#5c1a72", {}),
1148
- "not readable - empty wcag2 object"
1149
- );
1150
- assert(
1151
- !tinycolor.isReadable("#ff0088", "#8822aa", { level: "AA", size: "small" }),
1152
- "not readable - AA small"
1153
- );
1154
- assert(
1155
- !tinycolor.isReadable("#ff0088", "#8822aa", { level: "AA", size: "large" }),
1156
- "not readable - AA large"
1157
- );
1158
- assert(
1159
- !tinycolor.isReadable("#ff0088", "#8822aa", {
1160
- level: "AAA",
1161
- size: "small",
1162
- }),
1163
- "not readable - AAA small"
1164
- );
1165
- assert(
1166
- !tinycolor.isReadable("#ff0088", "#8822aa", {
1167
- level: "AAA",
1168
- size: "large",
1169
- }),
1170
- "not readable - AAA large"
1171
- );
1172
-
1173
- // values derived from and validated using the calculators at http://www.dasplankton.de/ContrastA/
1174
- // and http://webaim.org/resources/contrastchecker/
1175
-
1176
- // "#ff0088", "#5c1a72": contrast ratio 3.04
1177
- assert(
1178
- !tinycolor.isReadable("#ff0088", "#5c1a72", { level: "AA", size: "small" }),
1179
- "not readable - AA small"
1180
- );
1181
- assert(
1182
- tinycolor.isReadable("#ff0088", "#5c1a72", { level: "AA", size: "large" }),
1183
- "readable - AA large"
1184
- );
1185
- assert(
1186
- !tinycolor.isReadable("#ff0088", "#5c1a72", {
1187
- level: "AAA",
1188
- size: "small",
1189
- }),
1190
- "not readable - AAA small"
1191
- );
1192
- assert(
1193
- !tinycolor.isReadable("#ff0088", "#5c1a72", {
1194
- level: "AAA",
1195
- size: "large",
1196
- }),
1197
- "not readable - AAA large"
1198
- );
1199
-
1200
- // "#ff0088", "#2e0c3a": contrast ratio 4.56
1201
- assert(
1202
- tinycolor.isReadable("#ff0088", "#2e0c3a", { level: "AA", size: "small" }),
1203
- "readable - AA small"
1204
- );
1205
- assert(
1206
- tinycolor.isReadable("#ff0088", "#2e0c3a", { level: "AA", size: "large" }),
1207
- "readable - AA large"
1208
- );
1209
- assert(
1210
- !tinycolor.isReadable("#ff0088", "#2e0c3a", {
1211
- level: "AAA",
1212
- size: "small",
1213
- }),
1214
- "not readable - AAA small"
1215
- );
1216
- assert(
1217
- tinycolor.isReadable("#ff0088", "#2e0c3a", { level: "AAA", size: "large" }),
1218
- "readable - AAA large"
1219
- );
1220
-
1221
- // "#db91b8", "#2e0c3a": contrast ratio 7.12
1222
- assert(
1223
- tinycolor.isReadable("#db91b8", "#2e0c3a", { level: "AA", size: "small" }),
1224
- "readable - AA small"
1225
- );
1226
- assert(
1227
- tinycolor.isReadable("#db91b8", "#2e0c3a", { level: "AA", size: "large" }),
1228
- "readable - AA large"
1229
- );
1230
- assert(
1231
- tinycolor.isReadable("#db91b8", "#2e0c3a", { level: "AAA", size: "small" }),
1232
- "readable - AAA small"
1233
- );
1234
- assert(
1235
- tinycolor.isReadable("#db91b8", "#2e0c3a", { level: "AAA", size: "large" }),
1236
- "readable - AAA large"
1237
- );
1238
- });
1239
-
1240
- Deno.test("readability", function () {
1241
- // check return values from readability function. See isReadable above for standards tests.
1242
- assertEquals(
1243
- tinycolor.readability("#000", "#000"),
1244
- 1,
1245
- "Readability function test 0"
1246
- );
1247
- assertEquals(
1248
- tinycolor.readability("#000", "#111"),
1249
- 1.1121078324840545,
1250
- "Readability function test 1"
1251
- );
1252
- assertEquals(
1253
- tinycolor.readability("#000", "#fff"),
1254
- 21,
1255
- "Readability function test 2"
1256
- );
1257
- });
1258
-
1259
- Deno.test("mostReadable", function () {
1260
- assertEquals(
1261
- tinycolor
1262
- .mostReadable("#000", ["#111", "#222", { wcag2: {} }])
1263
- .toHexString(),
1264
- "#222222",
1265
- "readable color present"
1266
- );
1267
- assertEquals(
1268
- tinycolor
1269
- .mostReadable("#f00", ["#d00", "#0d0"], { wcag2: {} })
1270
- .toHexString(),
1271
- "#00dd00",
1272
- "readable color present"
1273
- );
1274
- assertEquals(
1275
- tinycolor
1276
- .mostReadable("#fff", ["#fff", "#fff"], { wcag2: {} })
1277
- .toHexString(),
1278
- "#ffffff",
1279
- "no different color in list"
1280
- );
1281
- //includeFallbackColors
1282
- assertEquals(
1283
- tinycolor
1284
- .mostReadable("#fff", ["#fff", "#fff"], {
1285
- includeFallbackColors: true,
1286
- })
1287
- .toHexString(),
1288
- "#000000",
1289
- "no different color in list"
1290
- );
1291
- assertEquals(
1292
- tinycolor
1293
- .mostReadable("#123", ["#124", "#125"], {
1294
- includeFallbackColors: false,
1295
- })
1296
- .toHexString(),
1297
- "#112255",
1298
- "no readable color in list"
1299
- );
1300
- assertEquals(
1301
- tinycolor
1302
- .mostReadable("#123", ["#000", "#fff"], {
1303
- includeFallbackColors: false,
1304
- })
1305
- .toHexString(),
1306
- "#ffffff",
1307
- "verify assumption"
1308
- );
1309
- assertEquals(
1310
- tinycolor
1311
- .mostReadable("#123", ["#124", "#125"], {
1312
- includeFallbackColors: true,
1313
- })
1314
- .toHexString(),
1315
- "#ffffff",
1316
- "no readable color in list"
1317
- );
1318
-
1319
- assertEquals(
1320
- tinycolor
1321
- .mostReadable("#ff0088", ["#000", "#fff"], {
1322
- includeFallbackColors: false,
1323
- })
1324
- .toHexString(),
1325
- "#000000",
1326
- "verify assumption"
1327
- );
1328
- assertEquals(
1329
- tinycolor
1330
- .mostReadable("#ff0088", ["#2e0c3a"], {
1331
- includeFallbackColors: true,
1332
- level: "AAA",
1333
- size: "large",
1334
- })
1335
- .toHexString(),
1336
- "#2e0c3a",
1337
- "readable color present"
1338
- );
1339
- assertEquals(
1340
- tinycolor
1341
- .mostReadable("#ff0088", ["#2e0c3a"], {
1342
- includeFallbackColors: true,
1343
- level: "AAA",
1344
- size: "small",
1345
- })
1346
- .toHexString(),
1347
- "#000000",
1348
- "no readable color in list"
1349
- );
1350
-
1351
- assertEquals(
1352
- tinycolor
1353
- .mostReadable("#371b2c", ["#000", "#fff"], {
1354
- includeFallbackColors: false,
1355
- })
1356
- .toHexString(),
1357
- "#ffffff",
1358
- "verify assumption"
1359
- );
1360
- assertEquals(
1361
- tinycolor
1362
- .mostReadable("#371b2c", ["#a9acb6"], {
1363
- includeFallbackColors: true,
1364
- level: "AAA",
1365
- size: "large",
1366
- })
1367
- .toHexString(),
1368
- "#a9acb6",
1369
- "readable color present"
1370
- );
1371
- assertEquals(
1372
- tinycolor
1373
- .mostReadable("#371b2c", ["#a9acb6"], {
1374
- includeFallbackColors: true,
1375
- level: "AAA",
1376
- size: "small",
1377
- })
1378
- .toHexString(),
1379
- "#ffffff",
1380
- "no readable color in list"
1381
- );
1382
- });
1383
-
1384
- Deno.test("Filters", function () {
1385
- assertEquals(
1386
- tinycolor("red").toFilter(),
1387
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff0000,endColorstr=#ffff0000)"
1388
- );
1389
- assertEquals(
1390
- tinycolor("red").toFilter("blue"),
1391
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff0000,endColorstr=#ff0000ff)"
1392
- );
1393
-
1394
- assertEquals(
1395
- tinycolor("transparent").toFilter(),
1396
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#00000000)"
1397
- );
1398
- assertEquals(
1399
- tinycolor("transparent").toFilter("red"),
1400
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#ffff0000)"
1401
- );
1402
-
1403
- assertEquals(
1404
- tinycolor("#f0f0f0dd").toFilter(),
1405
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ddf0f0f0,endColorstr=#ddf0f0f0)"
1406
- );
1407
- assertEquals(
1408
- tinycolor("rgba(0, 0, 255, .5").toFilter(),
1409
- "progid:DXImageTransform.Microsoft.gradient(startColorstr=#800000ff,endColorstr=#800000ff)"
1410
- );
1411
- });
1412
-
1413
- /* Originally generated with:
1414
- var results = [];
1415
- for (var i = 0; i <= 100; i++) results.push( tinycolor.saturate("red", i).toHex() )
1416
- console.log(JSON.stringify(results))
1417
- */
1418
- var DESATURATIONS = [
1419
- "ff0000",
1420
- "fe0101",
1421
- "fc0303",
1422
- "fb0404",
1423
- "fa0505",
1424
- "f90606",
1425
- "f70808",
1426
- "f60909",
1427
- "f50a0a",
1428
- "f40b0b",
1429
- "f20d0d",
1430
- "f10e0e",
1431
- "f00f0f",
1432
- "ee1111",
1433
- "ed1212",
1434
- "ec1313",
1435
- "eb1414",
1436
- "e91616",
1437
- "e81717",
1438
- "e71818",
1439
- "e61919",
1440
- "e41b1b",
1441
- "e31c1c",
1442
- "e21d1d",
1443
- "e01f1f",
1444
- "df2020",
1445
- "de2121",
1446
- "dd2222",
1447
- "db2424",
1448
- "da2525",
1449
- "d92626",
1450
- "d72828",
1451
- "d62929",
1452
- "d52a2a",
1453
- "d42b2b",
1454
- "d22d2d",
1455
- "d12e2e",
1456
- "d02f2f",
1457
- "cf3030",
1458
- "cd3232",
1459
- "cc3333",
1460
- "cb3434",
1461
- "c93636",
1462
- "c83737",
1463
- "c73838",
1464
- "c63939",
1465
- "c43b3b",
1466
- "c33c3c",
1467
- "c23d3d",
1468
- "c13e3e",
1469
- "bf4040",
1470
- "be4141",
1471
- "bd4242",
1472
- "bb4444",
1473
- "ba4545",
1474
- "b94646",
1475
- "b84747",
1476
- "b64949",
1477
- "b54a4a",
1478
- "b44b4b",
1479
- "b34d4d",
1480
- "b14e4e",
1481
- "b04f4f",
1482
- "af5050",
1483
- "ad5252",
1484
- "ac5353",
1485
- "ab5454",
1486
- "aa5555",
1487
- "a85757",
1488
- "a75858",
1489
- "a65959",
1490
- "a45b5b",
1491
- "a35c5c",
1492
- "a25d5d",
1493
- "a15e5e",
1494
- "9f6060",
1495
- "9e6161",
1496
- "9d6262",
1497
- "9c6363",
1498
- "9a6565",
1499
- "996666",
1500
- "986767",
1501
- "966969",
1502
- "956a6a",
1503
- "946b6b",
1504
- "936c6c",
1505
- "916e6e",
1506
- "906f6f",
1507
- "8f7070",
1508
- "8e7171",
1509
- "8c7373",
1510
- "8b7474",
1511
- "8a7575",
1512
- "887777",
1513
- "877878",
1514
- "867979",
1515
- "857a7a",
1516
- "837c7c",
1517
- "827d7d",
1518
- "817e7e",
1519
- "808080",
1520
- ];
1521
- var SATURATIONS = [
1522
- "ff0000",
1523
- "ff0000",
1524
- "ff0000",
1525
- "ff0000",
1526
- "ff0000",
1527
- "ff0000",
1528
- "ff0000",
1529
- "ff0000",
1530
- "ff0000",
1531
- "ff0000",
1532
- "ff0000",
1533
- "ff0000",
1534
- "ff0000",
1535
- "ff0000",
1536
- "ff0000",
1537
- "ff0000",
1538
- "ff0000",
1539
- "ff0000",
1540
- "ff0000",
1541
- "ff0000",
1542
- "ff0000",
1543
- "ff0000",
1544
- "ff0000",
1545
- "ff0000",
1546
- "ff0000",
1547
- "ff0000",
1548
- "ff0000",
1549
- "ff0000",
1550
- "ff0000",
1551
- "ff0000",
1552
- "ff0000",
1553
- "ff0000",
1554
- "ff0000",
1555
- "ff0000",
1556
- "ff0000",
1557
- "ff0000",
1558
- "ff0000",
1559
- "ff0000",
1560
- "ff0000",
1561
- "ff0000",
1562
- "ff0000",
1563
- "ff0000",
1564
- "ff0000",
1565
- "ff0000",
1566
- "ff0000",
1567
- "ff0000",
1568
- "ff0000",
1569
- "ff0000",
1570
- "ff0000",
1571
- "ff0000",
1572
- "ff0000",
1573
- "ff0000",
1574
- "ff0000",
1575
- "ff0000",
1576
- "ff0000",
1577
- "ff0000",
1578
- "ff0000",
1579
- "ff0000",
1580
- "ff0000",
1581
- "ff0000",
1582
- "ff0000",
1583
- "ff0000",
1584
- "ff0000",
1585
- "ff0000",
1586
- "ff0000",
1587
- "ff0000",
1588
- "ff0000",
1589
- "ff0000",
1590
- "ff0000",
1591
- "ff0000",
1592
- "ff0000",
1593
- "ff0000",
1594
- "ff0000",
1595
- "ff0000",
1596
- "ff0000",
1597
- "ff0000",
1598
- "ff0000",
1599
- "ff0000",
1600
- "ff0000",
1601
- "ff0000",
1602
- "ff0000",
1603
- "ff0000",
1604
- "ff0000",
1605
- "ff0000",
1606
- "ff0000",
1607
- "ff0000",
1608
- "ff0000",
1609
- "ff0000",
1610
- "ff0000",
1611
- "ff0000",
1612
- "ff0000",
1613
- "ff0000",
1614
- "ff0000",
1615
- "ff0000",
1616
- "ff0000",
1617
- "ff0000",
1618
- "ff0000",
1619
- "ff0000",
1620
- "ff0000",
1621
- "ff0000",
1622
- "ff0000",
1623
- ];
1624
- var LIGHTENS = [
1625
- "ff0000",
1626
- "ff0505",
1627
- "ff0a0a",
1628
- "ff0f0f",
1629
- "ff1414",
1630
- "ff1a1a",
1631
- "ff1f1f",
1632
- "ff2424",
1633
- "ff2929",
1634
- "ff2e2e",
1635
- "ff3333",
1636
- "ff3838",
1637
- "ff3d3d",
1638
- "ff4242",
1639
- "ff4747",
1640
- "ff4d4d",
1641
- "ff5252",
1642
- "ff5757",
1643
- "ff5c5c",
1644
- "ff6161",
1645
- "ff6666",
1646
- "ff6b6b",
1647
- "ff7070",
1648
- "ff7575",
1649
- "ff7a7a",
1650
- "ff8080",
1651
- "ff8585",
1652
- "ff8a8a",
1653
- "ff8f8f",
1654
- "ff9494",
1655
- "ff9999",
1656
- "ff9e9e",
1657
- "ffa3a3",
1658
- "ffa8a8",
1659
- "ffadad",
1660
- "ffb3b3",
1661
- "ffb8b8",
1662
- "ffbdbd",
1663
- "ffc2c2",
1664
- "ffc7c7",
1665
- "ffcccc",
1666
- "ffd1d1",
1667
- "ffd6d6",
1668
- "ffdbdb",
1669
- "ffe0e0",
1670
- "ffe5e5",
1671
- "ffebeb",
1672
- "fff0f0",
1673
- "fff5f5",
1674
- "fffafa",
1675
- "ffffff",
1676
- "ffffff",
1677
- "ffffff",
1678
- "ffffff",
1679
- "ffffff",
1680
- "ffffff",
1681
- "ffffff",
1682
- "ffffff",
1683
- "ffffff",
1684
- "ffffff",
1685
- "ffffff",
1686
- "ffffff",
1687
- "ffffff",
1688
- "ffffff",
1689
- "ffffff",
1690
- "ffffff",
1691
- "ffffff",
1692
- "ffffff",
1693
- "ffffff",
1694
- "ffffff",
1695
- "ffffff",
1696
- "ffffff",
1697
- "ffffff",
1698
- "ffffff",
1699
- "ffffff",
1700
- "ffffff",
1701
- "ffffff",
1702
- "ffffff",
1703
- "ffffff",
1704
- "ffffff",
1705
- "ffffff",
1706
- "ffffff",
1707
- "ffffff",
1708
- "ffffff",
1709
- "ffffff",
1710
- "ffffff",
1711
- "ffffff",
1712
- "ffffff",
1713
- "ffffff",
1714
- "ffffff",
1715
- "ffffff",
1716
- "ffffff",
1717
- "ffffff",
1718
- "ffffff",
1719
- "ffffff",
1720
- "ffffff",
1721
- "ffffff",
1722
- "ffffff",
1723
- "ffffff",
1724
- "ffffff",
1725
- "ffffff",
1726
- ];
1727
- var BRIGHTENS = [
1728
- "ff0000",
1729
- "ff0303",
1730
- "ff0505",
1731
- "ff0808",
1732
- "ff0a0a",
1733
- "ff0d0d",
1734
- "ff0f0f",
1735
- "ff1212",
1736
- "ff1414",
1737
- "ff1717",
1738
- "ff1919",
1739
- "ff1c1c",
1740
- "ff1f1f",
1741
- "ff2121",
1742
- "ff2424",
1743
- "ff2626",
1744
- "ff2929",
1745
- "ff2b2b",
1746
- "ff2e2e",
1747
- "ff3030",
1748
- "ff3333",
1749
- "ff3636",
1750
- "ff3838",
1751
- "ff3b3b",
1752
- "ff3d3d",
1753
- "ff4040",
1754
- "ff4242",
1755
- "ff4545",
1756
- "ff4747",
1757
- "ff4a4a",
1758
- "ff4c4c",
1759
- "ff4f4f",
1760
- "ff5252",
1761
- "ff5454",
1762
- "ff5757",
1763
- "ff5959",
1764
- "ff5c5c",
1765
- "ff5e5e",
1766
- "ff6161",
1767
- "ff6363",
1768
- "ff6666",
1769
- "ff6969",
1770
- "ff6b6b",
1771
- "ff6e6e",
1772
- "ff7070",
1773
- "ff7373",
1774
- "ff7575",
1775
- "ff7878",
1776
- "ff7a7a",
1777
- "ff7d7d",
1778
- "ff7f7f",
1779
- "ff8282",
1780
- "ff8585",
1781
- "ff8787",
1782
- "ff8a8a",
1783
- "ff8c8c",
1784
- "ff8f8f",
1785
- "ff9191",
1786
- "ff9494",
1787
- "ff9696",
1788
- "ff9999",
1789
- "ff9c9c",
1790
- "ff9e9e",
1791
- "ffa1a1",
1792
- "ffa3a3",
1793
- "ffa6a6",
1794
- "ffa8a8",
1795
- "ffabab",
1796
- "ffadad",
1797
- "ffb0b0",
1798
- "ffb2b2",
1799
- "ffb5b5",
1800
- "ffb8b8",
1801
- "ffbaba",
1802
- "ffbdbd",
1803
- "ffbfbf",
1804
- "ffc2c2",
1805
- "ffc4c4",
1806
- "ffc7c7",
1807
- "ffc9c9",
1808
- "ffcccc",
1809
- "ffcfcf",
1810
- "ffd1d1",
1811
- "ffd4d4",
1812
- "ffd6d6",
1813
- "ffd9d9",
1814
- "ffdbdb",
1815
- "ffdede",
1816
- "ffe0e0",
1817
- "ffe3e3",
1818
- "ffe5e5",
1819
- "ffe8e8",
1820
- "ffebeb",
1821
- "ffeded",
1822
- "fff0f0",
1823
- "fff2f2",
1824
- "fff5f5",
1825
- "fff7f7",
1826
- "fffafa",
1827
- "fffcfc",
1828
- "ffffff",
1829
- ];
1830
- var DARKENS = [
1831
- "ff0000",
1832
- "fa0000",
1833
- "f50000",
1834
- "f00000",
1835
- "eb0000",
1836
- "e60000",
1837
- "e00000",
1838
- "db0000",
1839
- "d60000",
1840
- "d10000",
1841
- "cc0000",
1842
- "c70000",
1843
- "c20000",
1844
- "bd0000",
1845
- "b80000",
1846
- "b30000",
1847
- "ad0000",
1848
- "a80000",
1849
- "a30000",
1850
- "9e0000",
1851
- "990000",
1852
- "940000",
1853
- "8f0000",
1854
- "8a0000",
1855
- "850000",
1856
- "800000",
1857
- "7a0000",
1858
- "750000",
1859
- "700000",
1860
- "6b0000",
1861
- "660000",
1862
- "610000",
1863
- "5c0000",
1864
- "570000",
1865
- "520000",
1866
- "4d0000",
1867
- "470000",
1868
- "420000",
1869
- "3d0000",
1870
- "380000",
1871
- "330000",
1872
- "2e0000",
1873
- "290000",
1874
- "240000",
1875
- "1f0000",
1876
- "190000",
1877
- "140000",
1878
- "0f0000",
1879
- "0a0000",
1880
- "050000",
1881
- "000000",
1882
- "000000",
1883
- "000000",
1884
- "000000",
1885
- "000000",
1886
- "000000",
1887
- "000000",
1888
- "000000",
1889
- "000000",
1890
- "000000",
1891
- "000000",
1892
- "000000",
1893
- "000000",
1894
- "000000",
1895
- "000000",
1896
- "000000",
1897
- "000000",
1898
- "000000",
1899
- "000000",
1900
- "000000",
1901
- "000000",
1902
- "000000",
1903
- "000000",
1904
- "000000",
1905
- "000000",
1906
- "000000",
1907
- "000000",
1908
- "000000",
1909
- "000000",
1910
- "000000",
1911
- "000000",
1912
- "000000",
1913
- "000000",
1914
- "000000",
1915
- "000000",
1916
- "000000",
1917
- "000000",
1918
- "000000",
1919
- "000000",
1920
- "000000",
1921
- "000000",
1922
- "000000",
1923
- "000000",
1924
- "000000",
1925
- "000000",
1926
- "000000",
1927
- "000000",
1928
- "000000",
1929
- "000000",
1930
- "000000",
1931
- "000000",
1932
- ];
1933
-
1934
- Deno.test("Modifications", function () {
1935
- for (var i = 0; i <= 100; i++) {
1936
- assertEquals(
1937
- tinycolor("red").desaturate(i).toHex(),
1938
- DESATURATIONS[i],
1939
- "Desaturation " + i + " works"
1940
- );
1941
- }
1942
- for (var i = 0; i <= 100; i++) {
1943
- assertEquals(
1944
- tinycolor("red").saturate(i).toHex(),
1945
- SATURATIONS[i],
1946
- "Saturation " + i + " works"
1947
- );
1948
- }
1949
- for (var i = 0; i <= 100; i++) {
1950
- assertEquals(
1951
- tinycolor("red").lighten(i).toHex(),
1952
- LIGHTENS[i],
1953
- "Lighten " + i + " works"
1954
- );
1955
- }
1956
- for (var i = 0; i <= 100; i++) {
1957
- assertEquals(
1958
- tinycolor("red").brighten(i).toHex(),
1959
- BRIGHTENS[i],
1960
- "Brighter " + i + " works"
1961
- );
1962
- }
1963
- for (var i = 0; i <= 100; i++) {
1964
- assertEquals(
1965
- tinycolor("red").darken(i).toHex(),
1966
- DARKENS[i],
1967
- "Darken " + i + " works"
1968
- );
1969
- }
1970
-
1971
- assertEquals(
1972
- tinycolor("red").greyscale().toHex(),
1973
- "808080",
1974
- "Greyscale works"
1975
- );
1976
- });
1977
-
1978
- Deno.test("Spin", function () {
1979
- assertEquals(
1980
- Math.round(tinycolor("#f00").spin(-1234).toHsl().h),
1981
- 206,
1982
- "Spinning -1234 works"
1983
- );
1984
- assertEquals(
1985
- Math.round(tinycolor("#f00").spin(-360).toHsl().h),
1986
- 0,
1987
- "Spinning -360 works"
1988
- );
1989
- assertEquals(
1990
- Math.round(tinycolor("#f00").spin(-120).toHsl().h),
1991
- 240,
1992
- "Spinning -120 works"
1993
- );
1994
- assertEquals(
1995
- Math.round(tinycolor("#f00").spin(0).toHsl().h),
1996
- 0,
1997
- "Spinning 0 works"
1998
- );
1999
- assertEquals(
2000
- Math.round(tinycolor("#f00").spin(10).toHsl().h),
2001
- 10,
2002
- "Spinning 10 works"
2003
- );
2004
- assertEquals(
2005
- Math.round(tinycolor("#f00").spin(360).toHsl().h),
2006
- 0,
2007
- "Spinning 360 works"
2008
- );
2009
- assertEquals(
2010
- Math.round(tinycolor("#f00").spin(2345).toHsl().h),
2011
- 185,
2012
- "Spinning 2345 works"
2013
- );
2014
-
2015
- [-360, 0, 360].forEach(function (delta) {
2016
- Object.keys(tinycolor.names).forEach(function (name) {
2017
- assertEquals(
2018
- tinycolor(name).toHex(),
2019
- tinycolor(name).spin(delta).toHex(),
2020
- "Spinning " + delta.toString() + " has no effect"
2021
- );
2022
- });
2023
- });
2024
- });
2025
-
2026
- Deno.test("Mix", function () {
2027
- // amount 0 or none
2028
- assertEquals(
2029
- tinycolor.mix("#000", "#fff").toHsl().l,
2030
- 0.5,
2031
- "Mixing without amount works"
2032
- );
2033
- assertEquals(
2034
- tinycolor.mix("#f00", "#000", 0).toHex(),
2035
- "ff0000",
2036
- "Mixing with 0 amount works"
2037
- );
2038
- // This case checks the the problem with floating point numbers (eg 255/90)
2039
- assertEquals(
2040
- tinycolor.mix("#fff", "#000", 90).toHex(),
2041
- "1a1a1a",
2042
- "Mixing with 90 amount works correctly"
2043
- );
2044
-
2045
- // black and white
2046
- for (var i = 0; i < 100; i++) {
2047
- assertEquals(
2048
- Math.round(tinycolor.mix("#000", "#fff", i).toHsl().l * 100) / 100,
2049
- i / 100,
2050
- "Mixing black and white with " + i + " amount works"
2051
- );
2052
- }
2053
-
2054
- // with colors
2055
- for (var i = 0; i < 100; i++) {
2056
- var new_hex = Math.round((255 * (100 - i)) / 100).toString(16);
2057
-
2058
- if (new_hex.length === 1) {
2059
- new_hex = "0" + new_hex;
2060
- }
2061
-
2062
- assertEquals(
2063
- tinycolor.mix("#f00", "#000", i).toHex(),
2064
- new_hex + "0000",
2065
- "Mixing " + i + " (red channel)"
2066
- );
2067
- assertEquals(
2068
- tinycolor.mix("#0f0", "#000", i).toHex(),
2069
- "00" + new_hex + "00",
2070
- "Mixing " + i + " (green channel)"
2071
- );
2072
- assertEquals(
2073
- tinycolor.mix("#00f", "#000", i).toHex(),
2074
- "0000" + new_hex,
2075
- "Mixing " + i + " (blue channel)"
2076
- );
2077
- assertEquals(
2078
- tinycolor.mix(tinycolor("transparent"), "#000", i).toRgb().a,
2079
- i / 100,
2080
- "Mixing " + i + " (alpha channel)"
2081
- );
2082
- }
2083
- });
2084
-
2085
- // The combination tests need to be expanded furthe
2086
-
2087
- function colorsToHexString(colors) {
2088
- return colors
2089
- .map(function (c) {
2090
- return c.toHex();
2091
- })
2092
- .join(",");
2093
- }
2094
-
2095
- Deno.test("complement", function () {
2096
- var complementDoesntModifyInstance = tinycolor("red");
2097
- assertEquals(
2098
- complementDoesntModifyInstance.complement().toHex(),
2099
- "00ffff",
2100
- "Complement works"
2101
- );
2102
- assertEquals(
2103
- complementDoesntModifyInstance.toHex(),
2104
- "ff0000",
2105
- "Complement did not modify this color"
2106
- );
2107
- });
2108
-
2109
- Deno.test("analogous", function () {
2110
- var combination = tinycolor("red").analogous();
2111
- assertEquals(
2112
- colorsToHexString(combination),
2113
- "ff0000,ff0066,ff0033,ff0000,ff3300,ff6600",
2114
- "Correct Combination"
2115
- );
2116
- });
2117
-
2118
- Deno.test("monochromatic", function () {
2119
- var combination = tinycolor("red").monochromatic();
2120
- assertEquals(
2121
- colorsToHexString(combination),
2122
- "ff0000,2a0000,550000,800000,aa0000,d40000",
2123
- "Correct Combination"
2124
- );
2125
- });
2126
-
2127
- Deno.test("splitcomplement", function () {
2128
- var combination = tinycolor("red").splitcomplement();
2129
- assertEquals(
2130
- colorsToHexString(combination),
2131
- "ff0000,ccff00,0066ff",
2132
- "Correct Combination"
2133
- );
2134
- });
2135
-
2136
- Deno.test("triad", function () {
2137
- var combination = tinycolor("red").triad();
2138
- assertEquals(
2139
- colorsToHexString(combination),
2140
- "ff0000,00ff00,0000ff",
2141
- "Correct Combination"
2142
- );
2143
- });
2144
-
2145
- Deno.test("tetrad", function () {
2146
- var combination = tinycolor("red").tetrad();
2147
- assertEquals(
2148
- colorsToHexString(combination),
2149
- "ff0000,80ff00,00ffff,7f00ff",
2150
- "Correct Combination"
2151
- );
2152
- });
2153
-
2154
- Deno.test({
2155
- name: "polyad",
2156
- // Disabled until https://github.com/bgrins/TinyColor/issues/254
2157
- ignore: true,
2158
- fn: function () {
2159
- assertThrows(() => {
2160
- tinycolor("red").polyad();
2161
- });
2162
- assertThrows(() => {
2163
- tinycolor("red").polyad(-1);
2164
- });
2165
- assertThrows(() => {
2166
- tinycolor("red").polyad("invalid");
2167
- });
2168
- assertEquals(colorsToHexString(tinycolor("red").polyad(1)), "ff0000");
2169
- assertEquals(colorsToHexString(tinycolor("red").polyad("1")), "ff0000");
2170
- assertEquals(
2171
- colorsToHexString(tinycolor("red").polyad(2)),
2172
- "ff0000,00ffff"
2173
- );
2174
- assertEquals(
2175
- colorsToHexString(tinycolor("red").polyad(3)),
2176
- "ff0000,00ff00,0000ff"
2177
- );
2178
- assertEquals(
2179
- colorsToHexString(tinycolor("red").polyad(4)),
2180
- "ff0000,80ff00,00ffff,7f00ff"
2181
- );
2182
- assertEquals(
2183
- colorsToHexString(tinycolor("red").polyad(5)),
2184
- "ff0000,ccff00,00ff66,0066ff,cc00ff"
2185
- );
2186
- },
2187
- });
2188
-
2189
- runDenoTests();