sass-planifolia

Vanilla Sass helper functions
git clone https://git.ce9e.org/sass-planifolia.git

commit
0cb62ed86f87b01bdf7bfb0303fa4225bb1a1f0b
parent
8399f77cf2270c250bf499ae521143c391b704ae
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2022-05-03 21:20
use @use for tests

Diffstat

M test/color.js 214 ++++++++++++++++++++++++++++++------------------------------
M test/contrast.js 98 ++++++++++++++++++++++++++++++------------------------------

2 files changed, 156 insertions, 156 deletions


diff --git a/test/color.js b/test/color.js

@@ -2,150 +2,150 @@ var assert = require('assert');
    2     2 var shared = require('./shared');
    3     3 
    4     4 describe('color', function() {
    5    -1   var renderer = new shared.Renderer('@import "color";');
   -1     5   var renderer = new shared.Renderer('@use "color";');
    6     6 
    7     7   describe('lab', function() {
    8     8     describe('lch', function() {
    9     9       it('white', function() {
   10    -1         assert.equal(renderer.value('lch(100, 0, 0rad)'), '#fff')
   -1    10         assert.equal(renderer.value('color.lch(100, 0, 0rad)'), '#fff')
   11    11       });
   12    12       it('black', function() {
   13    -1         assert.equal(renderer.value('lch(0, 0, 0rad)'), '#000')
   -1    13         assert.equal(renderer.value('color.lch(0, 0, 0rad)'), '#000')
   14    14       });
   15    15       it('red (rad)', function() {
   16    -1         assert.equal(renderer.value('lch(53.23288, 104.57421, .69818rad)'), 'red')
   -1    16         assert.equal(renderer.value('color.lch(53.23288, 104.57421, .69818rad)'), 'red')
   17    17       });
   18    18       it('red (deg)', function() {
   19    -1         assert.equal(renderer.value('lch(53.23288, 104.57421, 40deg)'), 'red')
   -1    19         assert.equal(renderer.value('color.lch(53.23288, 104.57421, 40deg)'), 'red')
   20    20       });
   21    21       it('red (unitless)', function() {
   22    -1         assert.equal(renderer.value('lch(53.23288, 104.57421, 40)'), 'red')
   -1    22         assert.equal(renderer.value('color.lch(53.23288, 104.57421, 40)'), 'red')
   23    23       });
   24    24       it('blue', function() {
   25    -1         assert.equal(renderer.value('lch(32.30259, 133.80605, -0.93744rad)'), 'blue')
   -1    25         assert.equal(renderer.value('color.lch(32.30259, 133.80605, -0.93744rad)'), 'blue')
   26    26       });
   27    27     });
   28    28 
   29    29     describe('pf-lightness', function() {
   30    30       it('white', function() {
   31    -1         shared.similar(renderer.value('pf-lightness(white)'), 100);
   -1    31         shared.similar(renderer.value('color.pf-lightness(white)'), 100);
   32    32       });
   33    33       it('black', function() {
   34    -1         shared.similar(renderer.value('pf-lightness(black)'), 0);
   -1    34         shared.similar(renderer.value('color.pf-lightness(black)'), 0);
   35    35       });
   36    36       it('red', function() {
   37    -1         shared.similar(renderer.value('pf-lightness(red)'), 53.23288);
   -1    37         shared.similar(renderer.value('color.pf-lightness(red)'), 53.23288);
   38    38       });
   39    39       it('blue', function() {
   40    -1         shared.similar(renderer.value('pf-lightness(blue)'), 32.30259);
   -1    40         shared.similar(renderer.value('color.pf-lightness(blue)'), 32.30259);
   41    41       });
   42    42     });
   43    43 
   44    44     describe('pf-chroma', function() {
   45    45       it('white', function() {
   46    -1         shared.similar(renderer.value('pf-chroma(white)'), 0, .0001);
   -1    46         shared.similar(renderer.value('color.pf-chroma(white)'), 0, .0001);
   47    47       });
   48    48       it('black', function() {
   49    -1         shared.similar(renderer.value('pf-chroma(black)'), 0);
   -1    49         shared.similar(renderer.value('color.pf-chroma(black)'), 0);
   50    50       });
   51    51       it('red', function() {
   52    -1         shared.similar(renderer.value('pf-chroma(red)'), 104.57421);
   -1    52         shared.similar(renderer.value('color.pf-chroma(red)'), 104.57421);
   53    53       });
   54    54       it('blue', function() {
   55    -1         shared.similar(renderer.value('pf-chroma(blue)'), 133.80605);
   -1    55         shared.similar(renderer.value('color.pf-chroma(blue)'), 133.80605);
   56    56       });
   57    57     });
   58    58 
   59    59     describe('pf-hue', function() {
   60    60       it('white', function() {
   61    -1         shared.similar(renderer.value('pf-hue(white)'), 0);
   -1    61         shared.similar(renderer.value('color.pf-hue(white)'), 0);
   62    62       });
   63    63       it('black', function() {
   64    -1         shared.similar(renderer.value('pf-hue(black)'), 0);
   -1    64         shared.similar(renderer.value('color.pf-hue(black)'), 0);
   65    65       });
   66    66       it('red', function() {
   67    -1         shared.similar(renderer.value('pf-hue(red)'), 40.0027);
   -1    67         shared.similar(renderer.value('color.pf-hue(red)'), 40.0027);
   68    68       });
   69    69       it('yellow', function() {
   70    -1         shared.similar(renderer.value('pf-hue(yellow)'), 102.85403);
   -1    70         shared.similar(renderer.value('color.pf-hue(yellow)'), 102.85403);
   71    71       });
   72    72       it('green', function() {
   73    -1         shared.similar(renderer.value('pf-hue(green)'), 136.0155);
   -1    73         shared.similar(renderer.value('color.pf-hue(green)'), 136.0155);
   74    74       });
   75    75       it('blue', function() {
   76    -1         shared.similar(renderer.value('pf-hue(blue)'), -53.71132);
   -1    76         shared.similar(renderer.value('color.pf-hue(blue)'), -53.71132);
   77    77       });
   78    78     });
   79    79 
   80    80     describe('pf-complement', function() {
   81    81       it('white', function() {
   82    -1         assert.equal(renderer.value('pf-complement(white)'), '#fff')
   -1    82         assert.equal(renderer.value('color.pf-complement(white)'), '#fff')
   83    83       });
   84    84       it('red', function() {
   85    -1         assert.equal(renderer.value('pf-complement(red)'), '#008ca1')
   -1    85         assert.equal(renderer.value('color.pf-complement(red)'), '#008ca1')
   86    86       });
   87    87       it('yellow', function() {
   88    -1         assert.equal(renderer.value('pf-complement(yellow)'), '#f5f6ff')
   -1    88         assert.equal(renderer.value('color.pf-complement(yellow)'), '#f5f6ff')
   89    89       });
   90    90     });
   91    91 
   92    92     describe('pf-color-distance', function() {
   93    93       it('d(white, white) = 0', function() {
   94    -1         assert.equal(renderer.value('pf-color-distance(white, white)'), 0)
   -1    94         assert.equal(renderer.value('color.pf-color-distance(white, white)'), 0)
   95    95       });
   96    96       it('d(red, red) = 0', function() {
   97    -1         assert.equal(renderer.value('pf-color-distance(red, red)'), 0)
   -1    97         assert.equal(renderer.value('color.pf-color-distance(red, red)'), 0)
   98    98       });
   99    99       it('d(white, black) ~= 100', function() {
  100    -1         shared.similar(renderer.value('pf-color-distance(white, black)'), 100);
   -1   100         shared.similar(renderer.value('color.pf-color-distance(white, black)'), 100);
  101   101       });
  102   102       it('d(white, red)', function() {
  103    -1         shared.similar(renderer.value('pf-color-distance(white, red)'), 114.55535);
   -1   103         shared.similar(renderer.value('color.pf-color-distance(white, red)'), 114.55535);
  104   104       });
  105   105       it('d(red, blue)', function() {
  106    -1         shared.similar(renderer.value('pf-color-distance(red, blue)'), 176.32554);
   -1   106         shared.similar(renderer.value('color.pf-color-distance(red, blue)'), 176.32554);
  107   107       });
  108   108       it('d(blue, red)', function() {
  109    -1         shared.similar(renderer.value('pf-color-distance(blue, red)'), 176.32554);
   -1   109         shared.similar(renderer.value('color.pf-color-distance(blue, red)'), 176.32554);
  110   110       });
  111   111     });
  112   112 
  113   113     describe('pf-mix', function() {
  114   114       it('white, white', function() {
  115    -1         assert.equal(renderer.value('pf-mix(white, white)'), '#fff')
   -1   115         assert.equal(renderer.value('color.pf-mix(white, white)'), '#fff')
  116   116       });
  117   117       it('black, white', function() {
  118    -1         assert.equal(renderer.value('pf-mix(black, white)'), '#777')
   -1   118         assert.equal(renderer.value('color.pf-mix(black, white)'), '#777')
  119   119       });
  120   120       it('black, white, 0%', function() {
  121    -1         assert.equal(renderer.value('pf-mix(black, white, 0%)'), '#fff')
   -1   121         assert.equal(renderer.value('color.pf-mix(black, white, 0%)'), '#fff')
  122   122       });
  123   123       it('black, white, 100%', function() {
  124    -1         assert.equal(renderer.value('pf-mix(black, white, 100%)'), '#000')
   -1   124         assert.equal(renderer.value('color.pf-mix(black, white, 100%)'), '#000')
  125   125       });
  126   126       it('black, white, 20%', function() {
  127    -1         assert.equal(renderer.value('pf-mix(black, white, 20%)'), '#c6c6c6')
   -1   127         assert.equal(renderer.value('color.pf-mix(black, white, 20%)'), '#c6c6c6')
  128   128       });
  129   129       it('black, white, .2', function() {
  130    -1         assert.equal(renderer.value('pf-mix(black, white, .2)'), '#c6c6c6')
   -1   130         assert.equal(renderer.value('color.pf-mix(black, white, .2)'), '#c6c6c6')
  131   131       });
  132   132       it('blue, red', function() {
  133    -1         assert.equal(renderer.value('pf-mix(blue, red)'), '#c20081')
   -1   133         assert.equal(renderer.value('color.pf-mix(blue, red)'), '#c20081')
  134   134       });
  135   135       it('blue, red, 20%', function() {
  136    -1         assert.equal(renderer.value('pf-mix(blue, red, 20%)'), '#e70051')
   -1   136         assert.equal(renderer.value('color.pf-mix(blue, red, 20%)'), '#e70051')
  137   137       });
  138   138       it('green, red', function() {
  139    -1         assert.equal(renderer.value('pf-mix(green, red)'), '#9d6e00')
   -1   139         assert.equal(renderer.value('color.pf-mix(green, red)'), '#9d6e00')
  140   140       });
  141   141       it('yellow, blue', function() {
  142    -1         assert.equal(renderer.value('pf-mix(yellow, blue)'), '#ff6b89')
   -1   142         assert.equal(renderer.value('color.pf-mix(yellow, blue)'), '#ff6b89')
  143   143       });
  144   144       it('green, blue', function() {
  145    -1         assert.equal(renderer.value('pf-mix(green, blue)'), '#006487')
   -1   145         assert.equal(renderer.value('color.pf-mix(green, blue)'), '#006487')
  146   146       });
  147   147       it('white, blue', function() {
  148    -1         assert.equal(renderer.value('pf-mix(white, blue)'), '#b38cff')
   -1   148         assert.equal(renderer.value('color.pf-mix(white, blue)'), '#b38cff')
  149   149       });
  150   150     });
  151   151   });
@@ -153,124 +153,124 @@ describe('color', function() {
  153   153   describe('luv', function() {
  154   154     describe('lch', function() {
  155   155       it('white', function() {
  156    -1         assert.equal(renderer.value('lch(100, 0, 0rad, "luv")'), '#fff')
   -1   156         assert.equal(renderer.value('color.lch(100, 0, 0rad, "luv")'), '#fff')
  157   157       });
  158   158       it('black', function() {
  159    -1         assert.equal(renderer.value('lch(0, 0, 0rad, "luv")'), '#000')
   -1   159         assert.equal(renderer.value('color.lch(0, 0, 0rad, "luv")'), '#000')
  160   160       });
  161   161       it('red (rad)', function() {
  162    -1         assert.equal(renderer.value('lch(53.23288, 179.07872, .21245rad, "luv")'), 'red')
   -1   162         assert.equal(renderer.value('color.lch(53.23288, 179.07872, .21245rad, "luv")'), 'red')
  163   163       });
  164   164       it('red (deg)', function() {
  165    -1         assert.equal(renderer.value('lch(53.23288, 179.07872, 12.1725deg, "luv")'), 'red')
   -1   165         assert.equal(renderer.value('color.lch(53.23288, 179.07872, 12.1725deg, "luv")'), 'red')
  166   166       });
  167   167       it('red (unitless)', function() {
  168    -1         assert.equal(renderer.value('lch(53.23288, 179.07872, 12.1725, "luv")'), 'red')
   -1   168         assert.equal(renderer.value('color.lch(53.23288, 179.07872, 12.1725, "luv")'), 'red')
  169   169       });
  170   170       it('blue', function() {
  171    -1         assert.equal(renderer.value('lch(32.30259, 130.69138, -1.64278rad, "luv")'), 'blue')
   -1   171         assert.equal(renderer.value('color.lch(32.30259, 130.69138, -1.64278rad, "luv")'), 'blue')
  172   172       });
  173   173     });
  174   174 
  175   175     describe('pf-lightness', function() {
  176   176       it('white', function() {
  177    -1         shared.similar(renderer.value('pf-lightness(white, "luv")'), 100);
   -1   177         shared.similar(renderer.value('color.pf-lightness(white, "luv")'), 100);
  178   178       });
  179   179       it('black', function() {
  180    -1         shared.similar(renderer.value('pf-lightness(black, "luv")'), 0);
   -1   180         shared.similar(renderer.value('color.pf-lightness(black, "luv")'), 0);
  181   181       });
  182   182       it('red', function() {
  183    -1         shared.similar(renderer.value('pf-lightness(red, "luv")'), 53.23288);
   -1   183         shared.similar(renderer.value('color.pf-lightness(red, "luv")'), 53.23288);
  184   184       });
  185   185       it('blue', function() {
  186    -1         shared.similar(renderer.value('pf-lightness(blue, "luv")'), 32.30259);
   -1   186         shared.similar(renderer.value('color.pf-lightness(blue, "luv")'), 32.30259);
  187   187       });
  188   188     });
  189   189 
  190   190     describe('pf-chroma', function() {
  191   191       it('white', function() {
  192    -1         shared.similar(renderer.value('pf-chroma(white, "luv")'), 0, .0001);
   -1   192         shared.similar(renderer.value('color.pf-chroma(white, "luv")'), 0, .0001);
  193   193       });
  194   194       it('black', function() {
  195    -1         shared.similar(renderer.value('pf-chroma(black, "luv")'), 0);
   -1   195         shared.similar(renderer.value('color.pf-chroma(black, "luv")'), 0);
  196   196       });
  197   197       it('red', function() {
  198    -1         shared.similar(renderer.value('pf-chroma(red, "luv")'), 179.07872);
   -1   198         shared.similar(renderer.value('color.pf-chroma(red, "luv")'), 179.07872);
  199   199       });
  200   200       it('blue', function() {
  201    -1         shared.similar(renderer.value('pf-chroma(blue, "luv")'), 130.69138);
   -1   201         shared.similar(renderer.value('color.pf-chroma(blue, "luv")'), 130.69138);
  202   202       });
  203   203     });
  204   204 
  205   205     describe('pf-hue', function() {
  206   206       it('white', function() {
  207    -1         shared.similar(renderer.value('pf-hue(white, "luv")'), 0);
   -1   207         shared.similar(renderer.value('color.pf-hue(white, "luv")'), 0);
  208   208       });
  209   209       it('black', function() {
  210    -1         shared.similar(renderer.value('pf-hue(black, "luv")'), 0);
   -1   210         shared.similar(renderer.value('color.pf-hue(black, "luv")'), 0);
  211   211       });
  212   212       it('red', function() {
  213    -1         shared.similar(renderer.value('pf-hue(red, "luv")'), 12.17245);
   -1   213         shared.similar(renderer.value('color.pf-hue(red, "luv")'), 12.17245);
  214   214       });
  215   215       it('yellow', function() {
  216    -1         shared.similar(renderer.value('pf-hue(yellow, "luv")'), 85.87536);
   -1   216         shared.similar(renderer.value('color.pf-hue(yellow, "luv")'), 85.87536);
  217   217       });
  218   218       it('green', function() {
  219    -1         shared.similar(renderer.value('pf-hue(green, "luv")'), 127.71994);
   -1   219         shared.similar(renderer.value('color.pf-hue(green, "luv")'), 127.71994);
  220   220       });
  221   221       it('blue', function() {
  222    -1         shared.similar(renderer.value('pf-hue(blue, "luv")'), -94.12464);
   -1   222         shared.similar(renderer.value('color.pf-hue(blue, "luv")'), -94.12464);
  223   223       });
  224   224     });
  225   225 
  226   226     describe('pf-complement', function() {
  227   227       it('white', function() {
  228    -1         assert.equal(renderer.value('pf-complement(white, "luv")'), '#fff')
   -1   228         assert.equal(renderer.value('color.pf-complement(white, "luv")'), '#fff')
  229   229       });
  230   230       it('red', function() {
  231    -1         assert.equal(renderer.value('pf-complement(red, "luv")'), '#008e8e')
   -1   231         assert.equal(renderer.value('color.pf-complement(red, "luv")'), '#008e8e')
  232   232       });
  233   233       it('yellow', function() {
  234    -1         assert.equal(renderer.value('pf-complement(yellow, "luv")'), '#f6f6ff')
   -1   234         assert.equal(renderer.value('color.pf-complement(yellow, "luv")'), '#f6f6ff')
  235   235       });
  236   236     });
  237   237 
  238   238     describe('pf-mix', function() {
  239   239       it('white, white', function() {
  240    -1         assert.equal(renderer.value('pf-mix(white, white, 50%, "luv")'), '#fff')
   -1   240         assert.equal(renderer.value('color.pf-mix(white, white, 50%, "luv")'), '#fff')
  241   241       });
  242   242       it('black, white', function() {
  243    -1         assert.equal(renderer.value('pf-mix(black, white, 50%, "luv")'), '#777')
   -1   243         assert.equal(renderer.value('color.pf-mix(black, white, 50%, "luv")'), '#777')
  244   244       });
  245   245       it('black, white, 0%', function() {
  246    -1         assert.equal(renderer.value('pf-mix(black, white, 0%, "luv")'), '#fff')
   -1   246         assert.equal(renderer.value('color.pf-mix(black, white, 0%, "luv")'), '#fff')
  247   247       });
  248   248       it('black, white, 100%', function() {
  249    -1         assert.equal(renderer.value('pf-mix(black, white, 100%, "luv")'), '#000')
   -1   249         assert.equal(renderer.value('color.pf-mix(black, white, 100%, "luv")'), '#000')
  250   250       });
  251   251       it('black, white, 20%', function() {
  252    -1         assert.equal(renderer.value('pf-mix(black, white, 20%, "luv")'), '#c6c6c6')
   -1   252         assert.equal(renderer.value('color.pf-mix(black, white, 20%, "luv")'), '#c6c6c6')
  253   253       });
  254   254       it('black, white, .2', function() {
  255    -1         assert.equal(renderer.value('pf-mix(black, white, .2, "luv")'), '#c6c6c6')
   -1   255         assert.equal(renderer.value('color.pf-mix(black, white, .2, "luv")'), '#c6c6c6')
  256   256       });
  257   257       it('blue, red', function() {
  258    -1         assert.equal(renderer.value('pf-mix(blue, red, 50%, "luv")'), '#bd0095')
   -1   258         assert.equal(renderer.value('color.pf-mix(blue, red, 50%, "luv")'), '#bd0095')
  259   259       });
  260   260       it('blue, red, 20%', function() {
  261    -1         assert.equal(renderer.value('pf-mix(blue, red, 20%, "luv")'), '#e40070')
   -1   261         assert.equal(renderer.value('color.pf-mix(blue, red, 20%, "luv")'), '#e40070')
  262   262       });
  263   263       it('green, red', function() {
  264    -1         assert.equal(renderer.value('pf-mix(green, red, 50%, "luv")'), '#a56a00')
   -1   264         assert.equal(renderer.value('color.pf-mix(green, red, 50%, "luv")'), '#a56a00')
  265   265       });
  266   266       it('yellow, blue', function() {
  267    -1         assert.equal(renderer.value('pf-mix(yellow, blue, 50%, "luv")'), '#ff66ab')
   -1   267         assert.equal(renderer.value('color.pf-mix(yellow, blue, 50%, "luv")'), '#ff66ab')
  268   268       });
  269   269       it('green, blue', function() {
  270    -1         assert.equal(renderer.value('pf-mix(green, blue, 50%, "luv")'), '#006678')
   -1   270         assert.equal(renderer.value('color.pf-mix(green, blue, 50%, "luv")'), '#006678')
  271   271       });
  272   272       it('white, blue', function() {
  273    -1         assert.equal(renderer.value('pf-mix(white, blue, 50%, "luv")'), '#9999e8')
   -1   273         assert.equal(renderer.value('color.pf-mix(white, blue, 50%, "luv")'), '#9999e8')
  274   274       });
  275   275     });
  276   276   });
@@ -278,109 +278,109 @@ describe('color', function() {
  278   278   describe('hsl', function() {
  279   279     describe('lch', function() {
  280   280       it('white', function() {
  281    -1         assert.equal(renderer.value('lch(100, 0, 0rad, "hsl")'), '#fff')
   -1   281         assert.equal(renderer.value('color.lch(100, 0, 0rad, "hsl")'), '#fff')
  282   282       });
  283   283       it('black', function() {
  284    -1         assert.equal(renderer.value('lch(0, 0, 0rad, "hsl")'), '#000')
   -1   284         assert.equal(renderer.value('color.lch(0, 0, 0rad, "hsl")'), '#000')
  285   285       });
  286   286       it('red', function() {
  287    -1         assert.equal(renderer.value('lch(50, 100, 0rad, "hsl")'), 'red')
   -1   287         assert.equal(renderer.value('color.lch(50, 100, 0rad, "hsl")'), 'red')
  288   288       });
  289   289       it('blue (rad)', function() {
  290    -1         assert.equal(renderer.value('lch(50, 100, 4.18879rad, "hsl")'), 'blue')
   -1   290         assert.equal(renderer.value('color.lch(50, 100, 4.18879rad, "hsl")'), 'blue')
  291   291       });
  292   292       it('blue (deg)', function() {
  293    -1         assert.equal(renderer.value('lch(50, 100, 240deg, "hsl")'), 'blue')
   -1   293         assert.equal(renderer.value('color.lch(50, 100, 240deg, "hsl")'), 'blue')
  294   294       });
  295   295       it('blue (unitless)', function() {
  296    -1         assert.equal(renderer.value('lch(50, 100, 240, "hsl")'), 'blue')
   -1   296         assert.equal(renderer.value('color.lch(50, 100, 240, "hsl")'), 'blue')
  297   297       });
  298   298     });
  299   299 
  300   300     describe('pf-lightness', function() {
  301   301       it('white', function() {
  302    -1         assert.equal(renderer.value('pf-lightness(white, "hsl")'), 100)
   -1   302         assert.equal(renderer.value('color.pf-lightness(white, "hsl")'), 100)
  303   303       });
  304   304       it('black', function() {
  305    -1         assert.equal(renderer.value('pf-lightness(black, "hsl")'), 0)
   -1   305         assert.equal(renderer.value('color.pf-lightness(black, "hsl")'), 0)
  306   306       });
  307   307       it('red', function() {
  308    -1         assert.equal(renderer.value('pf-lightness(red, "hsl")'), 50)
   -1   308         assert.equal(renderer.value('color.pf-lightness(red, "hsl")'), 50)
  309   309       });
  310   310       it('blue', function() {
  311    -1         assert.equal(renderer.value('pf-lightness(blue, "hsl")'), 50)
   -1   311         assert.equal(renderer.value('color.pf-lightness(blue, "hsl")'), 50)
  312   312       });
  313   313     });
  314   314 
  315   315     describe('pf-chroma', function() {
  316   316       it('white', function() {
  317    -1         assert.equal(renderer.value('pf-chroma(white, "hsl")'), 0)
   -1   317         assert.equal(renderer.value('color.pf-chroma(white, "hsl")'), 0)
  318   318       });
  319   319       it('black', function() {
  320    -1         assert.equal(renderer.value('pf-chroma(black, "hsl")'), 0)
   -1   320         assert.equal(renderer.value('color.pf-chroma(black, "hsl")'), 0)
  321   321       });
  322   322       it('red', function() {
  323    -1         assert.equal(renderer.value('pf-chroma(red, "hsl")'), 100)
   -1   323         assert.equal(renderer.value('color.pf-chroma(red, "hsl")'), 100)
  324   324       });
  325   325       it('blue', function() {
  326    -1         assert.equal(renderer.value('pf-chroma(blue, "hsl")'), 100)
   -1   326         assert.equal(renderer.value('color.pf-chroma(blue, "hsl")'), 100)
  327   327       });
  328   328     });
  329   329 
  330   330     describe('pf-hue', function() {
  331   331       it('white', function() {
  332    -1         shared.similar(renderer.value('pf-hue(white, "hsl")'), 0);
   -1   332         shared.similar(renderer.value('color.pf-hue(white, "hsl")'), 0);
  333   333       });
  334   334       it('black', function() {
  335    -1         shared.similar(renderer.value('pf-hue(black, "hsl")'), 0);
   -1   335         shared.similar(renderer.value('color.pf-hue(black, "hsl")'), 0);
  336   336       });
  337   337       it('red', function() {
  338    -1         shared.similar(renderer.value('pf-hue(red, "hsl")'), 0);
   -1   338         shared.similar(renderer.value('color.pf-hue(red, "hsl")'), 0);
  339   339       });
  340   340       it('yellow', function() {
  341    -1         shared.similar(renderer.value('pf-hue(yellow, "hsl")'), 60);
   -1   341         shared.similar(renderer.value('color.pf-hue(yellow, "hsl")'), 60);
  342   342       });
  343   343       it('green', function() {
  344    -1         shared.similar(renderer.value('pf-hue(green, "hsl")'), 120);
   -1   344         shared.similar(renderer.value('color.pf-hue(green, "hsl")'), 120);
  345   345       });
  346   346       it('blue', function() {
  347    -1         shared.similar(renderer.value('pf-hue(blue, "hsl")'), 240);
   -1   347         shared.similar(renderer.value('color.pf-hue(blue, "hsl")'), 240);
  348   348       });
  349   349     });
  350   350 
  351   351     describe('pf-complement', function() {
  352   352       it('white', function() {
  353    -1         assert.equal(renderer.value('pf-complement(white, "hsl")'), '#fff')
   -1   353         assert.equal(renderer.value('color.pf-complement(white, "hsl")'), '#fff')
  354   354       });
  355   355       it('red', function() {
  356    -1         assert.equal(renderer.value('pf-complement(red, "hsl")'), 'aqua')
   -1   356         assert.equal(renderer.value('color.pf-complement(red, "hsl")'), 'aqua')
  357   357       });
  358   358       it('yellow', function() {
  359    -1         assert.equal(renderer.value('pf-complement(yellow, "hsl")'), 'blue')
   -1   359         assert.equal(renderer.value('color.pf-complement(yellow, "hsl")'), 'blue')
  360   360       });
  361   361     });
  362   362 
  363   363     describe('pf-mix', function() {
  364   364       it('white, white', function() {
  365    -1         assert.equal(renderer.value('pf-mix(white, white, 50%, "hsl")'), '#fff')
   -1   365         assert.equal(renderer.value('color.pf-mix(white, white, 50%, "hsl")'), '#fff')
  366   366       });
  367   367       it('black, white', function() {
  368    -1         assert.equal(renderer.value('pf-mix(black, white, 50%, "hsl")'), 'gray')
   -1   368         assert.equal(renderer.value('color.pf-mix(black, white, 50%, "hsl")'), 'gray')
  369   369       });
  370   370       it('black, white, 0%', function() {
  371    -1         assert.equal(renderer.value('pf-mix(black, white, 0%, "hsl")'), '#fff')
   -1   371         assert.equal(renderer.value('color.pf-mix(black, white, 0%, "hsl")'), '#fff')
  372   372       });
  373   373       it('black, white, 100%', function() {
  374    -1         assert.equal(renderer.value('pf-mix(black, white, 100%, "hsl")'), '#000')
   -1   374         assert.equal(renderer.value('color.pf-mix(black, white, 100%, "hsl")'), '#000')
  375   375       });
  376   376       it('blue, red', function() {
  377    -1         assert.equal(renderer.value('pf-mix(blue, red, 50%, "hsl")'), '#f0f')
   -1   377         assert.equal(renderer.value('color.pf-mix(blue, red, 50%, "hsl")'), '#f0f')
  378   378       });
  379   379       it('yellow, blue', function() {
  380    -1         assert.equal(renderer.value('pf-mix(yellow, blue, 50%, "hsl")'), '#00ff80')
   -1   380         assert.equal(renderer.value('color.pf-mix(yellow, blue, 50%, "hsl")'), '#00ff80')
  381   381       });
  382   382       it('white, blue', function() {
  383    -1         assert.equal(renderer.value('pf-mix(white, blue, 50%, "hsl")'), '#9f9fdf')
   -1   383         assert.equal(renderer.value('color.pf-mix(white, blue, 50%, "hsl")'), '#9f9fdf')
  384   384       });
  385   385     });
  386   386   });

diff --git a/test/contrast.js b/test/contrast.js

@@ -2,142 +2,142 @@ var assert = require('assert');
    2     2 var shared = require('./shared');
    3     3 
    4     4 describe('contrast', function() {
    5    -1   var renderer = new shared.Renderer('@import "contrast";');
   -1     5   var renderer = new shared.Renderer('@use "contrast";');
    6     6 
    7     7   describe('alpha-blend', function() {
    8     8     it('fully opaque', function() {
    9    -1       assert.equal(renderer.value('alpha-blend(white)'), '#fff')
   10    -1       assert.equal(renderer.value('alpha-blend(black)'), '#000')
   11    -1       assert.equal(renderer.value('alpha-blend(red)'), 'red')
   -1     9       assert.equal(renderer.value('contrast.alpha-blend(white)'), '#fff')
   -1    10       assert.equal(renderer.value('contrast.alpha-blend(black)'), '#000')
   -1    11       assert.equal(renderer.value('contrast.alpha-blend(red)'), 'red')
   12    12     });
   13    13     it('fully transparent', function() {
   14    -1       assert.equal(renderer.value('alpha-blend(rgba(white, 0), blue)'), 'blue')
   15    -1       assert.equal(renderer.value('alpha-blend(rgba(black, 0), blue)'), 'blue')
   16    -1       assert.equal(renderer.value('alpha-blend(rgba(red, 0), blue)'), 'blue')
   17    -1       assert.equal(renderer.value('alpha-blend(rgba(blue, 0))'), '#fff')
   -1    14       assert.equal(renderer.value('contrast.alpha-blend(rgba(white, 0), blue)'), 'blue')
   -1    15       assert.equal(renderer.value('contrast.alpha-blend(rgba(black, 0), blue)'), 'blue')
   -1    16       assert.equal(renderer.value('contrast.alpha-blend(rgba(red, 0), blue)'), 'blue')
   -1    17       assert.equal(renderer.value('contrast.alpha-blend(rgba(blue, 0))'), '#fff')
   18    18     });
   19    19     it('50%', function() {
   20    -1       assert.equal(renderer.value('alpha-blend(rgba(white, .5), blue)'), '#8080ff')
   21    -1       assert.equal(renderer.value('alpha-blend(rgba(black, .5), blue)'), 'navy')
   22    -1       assert.equal(renderer.value('alpha-blend(rgba(red, .5), blue)'), 'purple')
   23    -1       assert.equal(renderer.value('alpha-blend(rgba(blue, .5))'), '#8080ff')
   -1    20       assert.equal(renderer.value('contrast.alpha-blend(rgba(white, .5), blue)'), '#8080ff')
   -1    21       assert.equal(renderer.value('contrast.alpha-blend(rgba(black, .5), blue)'), 'navy')
   -1    22       assert.equal(renderer.value('contrast.alpha-blend(rgba(red, .5), blue)'), 'purple')
   -1    23       assert.equal(renderer.value('contrast.alpha-blend(rgba(blue, .5))'), '#8080ff')
   24    24     });
   25    25     it('13%', function() {
   26    -1       assert.equal(renderer.value('alpha-blend(rgba(white, .13), blue)'), '#2121ff')
   27    -1       assert.equal(renderer.value('alpha-blend(rgba(black, .13), blue)'), '#0000de')
   28    -1       assert.equal(renderer.value('alpha-blend(rgba(red, .13), blue)'), '#2100de')
   29    -1       assert.equal(renderer.value('alpha-blend(rgba(blue, .13))'), '#dedeff')
   -1    26       assert.equal(renderer.value('contrast.alpha-blend(rgba(white, .13), blue)'), '#2121ff')
   -1    27       assert.equal(renderer.value('contrast.alpha-blend(rgba(black, .13), blue)'), '#0000de')
   -1    28       assert.equal(renderer.value('contrast.alpha-blend(rgba(red, .13), blue)'), '#2100de')
   -1    29       assert.equal(renderer.value('contrast.alpha-blend(rgba(blue, .13))'), '#dedeff')
   30    30     });
   31    31     it('transparent background', function() {
   32    -1       assert.equal(renderer.value('alpha-blend(rgba(white, .5), rgba(blue, .5))'), 'rgba(170,170,255,.75)')
   -1    32       assert.equal(renderer.value('contrast.alpha-blend(rgba(white, .5), rgba(blue, .5))'), 'rgba(170,170,255,.75)')
   33    33     });
   34    34     it('both fully transparent', function() {
   35    -1       assert.equal(renderer.value('alpha-blend(rgba(white, 0), rgba(black, 0))'), 'rgba(255,255,255,0)')
   -1    35       assert.equal(renderer.value('contrast.alpha-blend(rgba(white, 0), rgba(black, 0))'), 'rgba(255,255,255,0)')
   36    36     });
   37    37   });
   38    38 
   39    39   describe('luma', function() {
   40    40     it('white', function() {
   41    -1       assert.equal(renderer.value('luma(white)'), '1')
   -1    41       assert.equal(renderer.value('contrast.luma(white)'), '1')
   42    42     });
   43    43     it('black', function() {
   44    -1       assert.equal(renderer.value('luma(black)'), '0')
   -1    44       assert.equal(renderer.value('contrast.luma(black)'), '0')
   45    45     });
   46    46     it('red', function() {
   47    -1       assert.equal(renderer.value('luma(#f00)'), '.2126')
   -1    47       assert.equal(renderer.value('contrast.luma(#f00)'), '.2126')
   48    48     });
   49    49     it('green', function() {
   50    -1       assert.equal(renderer.value('luma(#0f0)'), '.7152')
   -1    50       assert.equal(renderer.value('contrast.luma(#0f0)'), '.7152')
   51    51     });
   52    52     it('blue', function() {
   53    -1       assert.equal(renderer.value('luma(#00f)'), '.0722')
   -1    53       assert.equal(renderer.value('contrast.luma(#00f)'), '.0722')
   54    54     });
   55    55     it('yellow', function() {
   56    -1       assert.equal(renderer.value('luma(yellow)'), '.9278')
   -1    56       assert.equal(renderer.value('contrast.luma(yellow)'), '.9278')
   57    57     });
   58    58     it('cyan', function() {
   59    -1       assert.equal(renderer.value('luma(cyan)'), '.7874')
   -1    59       assert.equal(renderer.value('contrast.luma(cyan)'), '.7874')
   60    60     });
   61    61     it('random', function() {
   62    -1       shared.similar(renderer.value('luma(rgb(12, 180, 92))'), .3349, .02);
   -1    62       shared.similar(renderer.value('contrast.luma(rgb(12, 180, 92))'), .3349, .02);
   63    63     });
   64    64     it('white with alpha', function() {
   65    -1       assert.equal(renderer.value('luma(rgba(255,255,255,.5))'), '1')
   -1    65       assert.equal(renderer.value('contrast.luma(rgba(255,255,255,.5))'), '1')
   66    66     });
   67    67     it('black with alpha', function() {
   68    -1       assert.equal(renderer.value('luma(rgba(0,0,0,.5))'), '0')
   -1    68       assert.equal(renderer.value('contrast.luma(rgba(0,0,0,.5))'), '0')
   69    69     });
   70    70   });
   71    71 
   72    72   describe('contrast', function() {
   73    73     it('white-black', function() {
   74    -1       assert.equal(renderer.value('contrast(white, black)'), '21')
   -1    74       assert.equal(renderer.value('contrast.contrast(white, black)'), '21')
   75    75     });
   76    76     it('white-white', function() {
   77    -1       assert.equal(renderer.value('contrast(white, white)'), '1')
   -1    77       assert.equal(renderer.value('contrast.contrast(white, white)'), '1')
   78    78     });
   79    79     it('black-black', function() {
   80    -1       assert.equal(renderer.value('contrast(black, black)'), '1')
   -1    80       assert.equal(renderer.value('contrast.contrast(black, black)'), '1')
   81    81     });
   82    82     it('red-red', function() {
   83    -1       assert.equal(renderer.value('contrast(red, red)'), '1')
   -1    83       assert.equal(renderer.value('contrast.contrast(red, red)'), '1')
   84    84     });
   85    85     it('red-lightblue', function() {
   86    -1       shared.similar(renderer.value('contrast(red, #676eff)'), 1, .02);
   -1    86       shared.similar(renderer.value('contrast.contrast(red, #676eff)'), 1, .02);
   87    87     });
   88    88   });
   89    89 
   90    90   describe('contrast-color', function() {
   91    91     it('white', function() {
   92    -1       assert.equal(renderer.value('contrast-color(white)'), '#000')
   -1    92       assert.equal(renderer.value('contrast.contrast-color(white)'), '#000')
   93    93     });
   94    94     it('black', function() {
   95    -1       assert.equal(renderer.value('contrast-color(black)'), '#fff')
   -1    95       assert.equal(renderer.value('contrast.contrast-color(black)'), '#fff')
   96    96     });
   97    97     it('red', function() {
   98    -1       assert.equal(renderer.value('contrast-color(#f00)'), '#000')
   -1    98       assert.equal(renderer.value('contrast.contrast-color(#f00)'), '#000')
   99    99     });
  100   100     it('green', function() {
  101    -1       assert.equal(renderer.value('contrast-color(#0f0)'), '#000')
   -1   101       assert.equal(renderer.value('contrast.contrast-color(#0f0)'), '#000')
  102   102     });
  103   103     it('blue', function() {
  104    -1       assert.equal(renderer.value('contrast-color(#00f)'), '#fff')
   -1   104       assert.equal(renderer.value('contrast.contrast-color(#00f)'), '#fff')
  105   105     });
  106   106     it('yellow', function() {
  107    -1       assert.equal(renderer.value('contrast-color(yellow)'), '#000')
   -1   107       assert.equal(renderer.value('contrast.contrast-color(yellow)'), '#000')
  108   108     });
  109   109     it('cyan', function() {
  110    -1       assert.equal(renderer.value('contrast-color(cyan)'), '#000')
   -1   110       assert.equal(renderer.value('contrast.contrast-color(cyan)'), '#000')
  111   111     });
  112   112     it('light', function() {
  113    -1       assert.equal(renderer.value('contrast-color(white, #111, #eee)'), '#111')
   -1   113       assert.equal(renderer.value('contrast.contrast-color(white, #111, #eee)'), '#111')
  114   114     });
  115   115     it('dark', function() {
  116    -1       assert.equal(renderer.value('contrast-color(black, #111, #eee)'), '#eee')
   -1   116       assert.equal(renderer.value('contrast.contrast-color(black, #111, #eee)'), '#eee')
  117   117     });
  118   118     it('middle', function() {
  119    -1       assert.equal(renderer.value('contrast-color(#555, #111, #eee)'), '#eee')
   -1   119       assert.equal(renderer.value('contrast.contrast-color(#555, #111, #eee)'), '#eee')
  120   120     });
  121   121     it('swapped', function() {
  122    -1       assert.equal(renderer.value('contrast-color(white, #eee, #111)'), '#111')
   -1   122       assert.equal(renderer.value('contrast.contrast-color(white, #eee, #111)'), '#111')
  123   123     });
  124   124   });
  125   125 
  126   126   describe('contrast-stretch', function() {
  127   127     it('white-black', function() {
  128    -1       assert.equal(renderer.value('contrast-stretch(white, black)'), '#000')
   -1   128       assert.equal(renderer.value('contrast.contrast-stretch(white, black)'), '#000')
  129   129     });
  130   130     it('white-#333', function() {
  131    -1       assert.equal(renderer.value('contrast-stretch(white, #333)'), '#333')
   -1   131       assert.equal(renderer.value('contrast.contrast-stretch(white, #333)'), '#333')
  132   132     });
  133   133     it('white-#333-21', function() {
  134    -1       assert.equal(renderer.value('contrast-stretch(white, #333, 21)'), '#000')
   -1   134       assert.equal(renderer.value('contrast.contrast-stretch(white, #333, 21)'), '#000')
  135   135     });
  136   136     it('#333-blue-7', function() {
  137    -1       assert.equal(renderer.value('contrast-stretch(#333, blue, 7)'), '#bbf')
   -1   137       assert.equal(renderer.value('contrast.contrast-stretch(#333, blue, 7)'), '#bbf')
  138   138     });
  139   139     it('#333-blue-AAA', function() {
  140    -1       assert.equal(renderer.value('contrast-stretch(#333, blue, "AAA")'), '#bbf')
   -1   140       assert.equal(renderer.value('contrast.contrast-stretch(#333, blue, "AAA")'), '#bbf')
  141   141     });
  142   142   });
  143   143 });