-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathp3.test.js
61 lines (57 loc) · 1.22 KB
/
p3.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import test from 'node:test';
import assert from 'node:assert';
import { p3, rgb, formatCss } from '../src/index.js';
test('p3', t => {
assert.deepEqual(
p3('white'),
{
mode: 'p3',
r: 0.9999999999999999,
g: 0.9999999999999997,
b: 0.9999999999999997
},
'white'
);
assert.deepEqual(p3('black'), { mode: 'p3', r: 0, g: 0, b: 0 }, 'black');
assert.deepEqual(
p3('red'),
{
mode: 'p3',
r: 0.9174875573251657,
g: 0.20028680774084662,
b: 0.1385605912111141
},
'red'
);
});
test('color(display-p3)', t => {
assert.deepEqual(p3('color(display-p3 1 0 0 / 0.25)'), {
r: 1,
g: 0,
b: 0,
alpha: 0.25,
mode: 'p3'
});
assert.deepEqual(p3('color(display-p3 0% 50% 0.5 / 25%)'), {
r: 0,
g: 0.5,
b: 0.5,
alpha: 0.25,
mode: 'p3'
});
});
test('formatCss', t => {
assert.equal(
formatCss('color(display-p3 0% 50% 0.5 / 25%)'),
'color(display-p3 0 0.5 0.5 / 0.25)'
);
});
test('missing components', t => {
assert.ok(rgb('color(display-p3 none 0.5 none)'), 'p3 to rgb is ok');
assert.deepEqual(
rgb('color(display-p3 none 0.5 none)'),
rgb('color(display-p3 0 0.5 0')
);
assert.ok(p3('rgb(none 100 20)'), 'rgb to p3 is ok');
assert.deepEqual(p3('rgb(none 100 20)'), p3('rgb(0 100 20)'));
});