Skip to content

Commit 04fe8f8

Browse files
committed
Refactor color tests using smash.
1 parent fe0d6f3 commit 04fe8f8

4 files changed

Lines changed: 180 additions & 192 deletions

File tree

test/color/hcl-test.js

Lines changed: 41 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
1-
require("../env");
2-
31
var vows = require("vows"),
2+
load = require("../load"),
43
assert = require("../env-assert");
54

65
var suite = vows.describe("d3.hcl");
76

87
suite.addBatch({
98
"hcl": {
10-
topic: function() {
11-
return d3.hcl;
12-
},
13-
"converts string channel values to numbers": function(hcl) {
14-
assertHclEqual(hcl("50", "-4", "32"), 50, -4, 32);
9+
topic: load("color/hcl"),
10+
"converts string channel values to numbers": function(d3) {
11+
assertHclEqual(d3.hcl("50", "-4", "32"), 50, -4, 32);
1512
},
16-
"converts null channel values to zero": function(hcl) {
17-
assertHclEqual(hcl(null, null, null), 0, 0, 0);
13+
"converts null channel values to zero": function(d3) {
14+
assertHclEqual(d3.hcl(null, null, null), 0, 0, 0);
1815
},
19-
"exposes h, c and l properties": function(hcl) {
20-
var color = hcl(50, -4, 32);
16+
"exposes h, c and l properties": function(d3) {
17+
var color = d3.hcl(50, -4, 32);
2118
assert.equal(color.h, 50);
2219
assert.equal(color.c, -4);
2320
assert.equal(color.l, 32);
2421
},
25-
"changing h, c or l affects the string format": function(hcl) {
26-
var color = hcl(50, -4, 32);
22+
"changing h, c or l affects the string format": function(d3) {
23+
var color = d3.hcl(50, -4, 32);
2724
assert.equal(color + "", "#444d50");
2825
color.h++;
2926
assert.equal(color + "", "#444d50");
@@ -32,50 +29,50 @@ suite.addBatch({
3229
color.l++;
3330
assert.equal(color + "", "#494f51");
3431
},
35-
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(hcl) {
36-
assertHclEqual(hcl("#abc"), -102.28223831811077, 10.774886733325554, 75.10497524893663);
32+
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(d3) {
33+
assertHclEqual(d3.hcl("#abc"), -102.28223831811077, 10.774886733325554, 75.10497524893663);
3734
},
38-
"parses hexadecimal format (e.g., \"#abcdef\")": function(hcl) {
39-
assertHclEqual(hcl("#abcdef"), -100.15785184209284, 20.768234621934273, 81.04386565274363);
35+
"parses hexadecimal format (e.g., \"#abcdef\")": function(d3) {
36+
assertHclEqual(d3.hcl("#abcdef"), -100.15785184209284, 20.768234621934273, 81.04386565274363);
4037
},
41-
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(hcl) {
42-
assertHclEqual(hcl("hsl(210, 64.7058%, 13.33333%)"), -89.58282792342067, 16.833655998102003, 12.65624852526134);
38+
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(d3) {
39+
assertHclEqual(d3.hcl("hsl(210, 64.7058%, 13.33333%)"), -89.58282792342067, 16.833655998102003, 12.65624852526134);
4340
},
44-
"parses color names (e.g., \"moccasin\")": function(hcl) {
45-
assertHclEqual(hcl("moccasin"), 84.71288921124494, 26.472460854104156, 91.72317744746022);
41+
"parses color names (e.g., \"moccasin\")": function(d3) {
42+
assertHclEqual(d3.hcl("moccasin"), 84.71288921124494, 26.472460854104156, 91.72317744746022);
4643
},
47-
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(hcl) {
48-
assertHclEqual(hcl("rgb(102, 102, 0)"), 102.85124420310271, 49.44871600399321, 41.73251953866431);
44+
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(d3) {
45+
assertHclEqual(d3.hcl("rgb(102, 102, 0)"), 102.85124420310271, 49.44871600399321, 41.73251953866431);
4946
},
50-
"can convert from RGB": function(hcl) {
51-
assertHclEqual(hcl(d3.rgb(12, 34, 56)), -89.58282792342067, 16.833655998102003, 12.65624852526134);
47+
"can convert from RGB": function(d3) {
48+
assertHclEqual(d3.hcl(d3.rgb(12, 34, 56)), -89.58282792342067, 16.833655998102003, 12.65624852526134);
5249
},
53-
"can convert from HSL": function(hcl) {
54-
assertHclEqual(hcl(d3.hcl(20, .8, .3)), 20, 0.8, 0.3);
50+
"can convert from HSL": function(d3) {
51+
assertHclEqual(d3.hcl(d3.hcl(20, .8, .3)), 20, 0.8, 0.3);
5552
},
56-
"can convert to RGB": function(hcl) {
57-
assert.rgbEqual(hcl("steelblue").rgb(), 70, 130, 180);
53+
"can convert to RGB": function(d3) {
54+
assert.rgbEqual(d3.hcl("steelblue").rgb(), 70, 130, 180);
5855
},
59-
"can derive a brighter color": function(hcl) {
60-
assertHclEqual(hcl("steelblue").brighter(), -97.21873224090723, 32.44906314974561, 70.46551718768575);
61-
assertHclEqual(hcl("steelblue").brighter(.5), -97.21873224090723, 32.44906314974561, 61.46551718768575);
56+
"can derive a brighter color": function(d3) {
57+
assertHclEqual(d3.hcl("steelblue").brighter(), -97.21873224090723, 32.44906314974561, 70.46551718768575);
58+
assertHclEqual(d3.hcl("steelblue").brighter(.5), -97.21873224090723, 32.44906314974561, 61.46551718768575);
6259
},
63-
"can derive a darker color": function(hcl) {
64-
assertHclEqual(hcl("lightsteelblue").darker(), -94.8160116310511, 15.26488988314746, 60.45157936968134);
65-
assertHclEqual(hcl("lightsteelblue").darker(.5), -94.8160116310511, 15.26488988314746, 69.45157936968134);
60+
"can derive a darker color": function(d3) {
61+
assertHclEqual(d3.hcl("lightsteelblue").darker(), -94.8160116310511, 15.26488988314746, 60.45157936968134);
62+
assertHclEqual(d3.hcl("lightsteelblue").darker(.5), -94.8160116310511, 15.26488988314746, 69.45157936968134);
6663
},
67-
"string coercion returns RGB format": function(hcl) {
68-
assert.strictEqual(hcl("hsl(60, 100%, 20%)") + "", "#666600");
69-
assert.strictEqual(hcl(d3.hcl(60, -4, 32)) + "", "#454c51");
64+
"string coercion returns RGB format": function(d3) {
65+
assert.strictEqual(d3.hcl("hsl(60, 100%, 20%)") + "", "#666600");
66+
assert.strictEqual(d3.hcl(d3.hcl(60, -4, 32)) + "", "#454c51");
7067
},
71-
"roundtrip to HSL is idempotent": function(hcl) {
72-
assert.hslEqual(d3.hsl(hcl("steelblue")), d3.hsl("steelblue"));
68+
"roundtrip to HSL is idempotent": function(d3) {
69+
assert.hslEqual(d3.hsl(d3.hcl("steelblue")), d3.hsl("steelblue"));
7370
},
74-
"roundtrip to RGB is idempotent": function(hcl) {
75-
assert.hslEqual(d3.rgb(hcl("steelblue")), d3.rgb("steelblue"));
71+
"roundtrip to RGB is idempotent": function(d3) {
72+
assert.hslEqual(d3.rgb(d3.hcl("steelblue")), d3.rgb("steelblue"));
7673
},
77-
"roundtrip to Lab is idempotent": function(hcl) {
78-
assert.hslEqual(d3.lab(hcl("steelblue")), d3.lab("steelblue"));
74+
"roundtrip to Lab is idempotent": function(d3) {
75+
assert.hslEqual(d3.lab(d3.hcl("steelblue")), d3.lab("steelblue"));
7976
}
8077
}
8178
});

test/color/hsl-test.js

Lines changed: 44 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,76 @@
1-
require("../env");
2-
31
var vows = require("vows"),
2+
load = require("../load"),
43
assert = require("../env-assert");
54

65
var suite = vows.describe("d3.hsl");
76

87
suite.addBatch({
98
"hsl": {
10-
topic: function() {
11-
return d3.hsl;
12-
},
13-
"does not clamp channel values": function(hsl) {
14-
assert.hslEqual(hsl(-100, -1, -2), -100, -1, -2);
15-
assert.hslEqual(hsl(400, 2, 3), 400, 2, 3);
9+
topic: load("color/hsl"),
10+
"does not clamp channel values": function(d3) {
11+
assert.hslEqual(d3.hsl(-100, -1, -2), -100, -1, -2);
12+
assert.hslEqual(d3.hsl(400, 2, 3), 400, 2, 3);
1613
},
17-
"converts string channel values to numbers": function(hsl) {
18-
assert.hslEqual(hsl("180", ".5", ".6"), 180, .5, .6);
14+
"converts string channel values to numbers": function(d3) {
15+
assert.hslEqual(d3.hsl("180", ".5", ".6"), 180, .5, .6);
1916
},
20-
"converts null channel values to zero": function(hsl) {
21-
assert.hslEqual(hsl(null, null, null), 0, 0, 0);
17+
"converts null channel values to zero": function(d3) {
18+
assert.hslEqual(d3.hsl(null, null, null), 0, 0, 0);
2219
},
23-
"exposes h, s and l properties": function(hsl) {
24-
var color = hsl("hsl(180, 50%, 60%)");
20+
"exposes h, s and l properties": function(d3) {
21+
var color = d3.hsl("hsl(180, 50%, 60%)");
2522
assert.equal(color.h, 180);
2623
assert.equal(color.s, .5);
2724
assert.equal(color.l, .6);
2825
},
29-
"changing h, s or l affects the string format": function(hsl) {
30-
var color = hsl("hsl(180, 50%, 60%)");
26+
"changing h, s or l affects the string format": function(d3) {
27+
var color = d3.hsl("hsl(180, 50%, 60%)");
3128
color.h++;
3229
color.s += .1;
3330
color.l += .1;
3431
assert.equal(color + "", "#85dfe0");
3532
},
36-
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(hsl) {
37-
assert.hslEqual(hsl("#abc"), 210, .25, .733333);
33+
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(d3) {
34+
assert.hslEqual(d3.hsl("#abc"), 210, .25, .733333);
3835
},
39-
"parses hexadecimal format (e.g., \"#abcdef\")": function(hsl) {
40-
assert.hslEqual(hsl("#abcdef"), 210, .68, .803922);
36+
"parses hexadecimal format (e.g., \"#abcdef\")": function(d3) {
37+
assert.hslEqual(d3.hsl("#abcdef"), 210, .68, .803922);
4138
},
42-
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(hsl) {
43-
assert.hslEqual(hsl("hsl(210, 64.7058%, 13.33333%)"), 210, .647058, .133333);
39+
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(d3) {
40+
assert.hslEqual(d3.hsl("hsl(210, 64.7058%, 13.33333%)"), 210, .647058, .133333);
4441
},
45-
"parses color names (e.g., \"moccasin\")": function(hsl) {
46-
assert.hslEqual(hsl("moccasin"), 38.108108, 1, .854902);
47-
assert.hslEqual(hsl("aliceblue"), 208, 1, .970588);
48-
assert.hslEqual(hsl("yellow"), 60, 1, .5);
42+
"parses color names (e.g., \"moccasin\")": function(d3) {
43+
assert.hslEqual(d3.hsl("moccasin"), 38.108108, 1, .854902);
44+
assert.hslEqual(d3.hsl("aliceblue"), 208, 1, .970588);
45+
assert.hslEqual(d3.hsl("yellow"), 60, 1, .5);
4946
},
50-
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(hsl) {
51-
assert.hslEqual(hsl("rgb(102, 102, 0)"), 60, 1, .2);
47+
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(d3) {
48+
assert.hslEqual(d3.hsl("rgb(102, 102, 0)"), 60, 1, .2);
5249
},
53-
"can convert from RGB": function(hsl) {
54-
assert.hslEqual(hsl(d3.rgb(12, 34, 56)), 210, .647058, .133333);
50+
"can convert from RGB": function(d3) {
51+
assert.hslEqual(d3.hsl(d3.rgb(12, 34, 56)), 210, .647058, .133333);
5552
},
56-
"can convert from HSL": function(hsl) {
57-
assert.hslEqual(hsl(d3.hsl(20, .8, .3)), 20, .8, .3);
53+
"can convert from HSL": function(d3) {
54+
assert.hslEqual(d3.hsl(d3.hsl(20, .8, .3)), 20, .8, .3);
5855
},
59-
"can convert to RGB": function(hsl) {
60-
assert.rgbEqual(hsl("steelblue").rgb(), 70, 130, 180);
56+
"can convert to RGB": function(d3) {
57+
assert.rgbEqual(d3.hsl("steelblue").rgb(), 70, 130, 180);
6158
},
62-
"can derive a brighter color": function(hsl) {
63-
assert.hslEqual(hsl("steelblue").brighter(), 207.272727, .44, .7002801);
64-
assert.hslEqual(hsl("steelblue").brighter(.5), 207.272727, .44, .5858964);
65-
assert.hslEqual(hsl("steelblue").brighter(1), 207.272727, .44, .7002801);
66-
assert.hslEqual(hsl("steelblue").brighter(2), 207.272727, .44, 1.0004002);
59+
"can derive a brighter color": function(d3) {
60+
assert.hslEqual(d3.hsl("steelblue").brighter(), 207.272727, .44, .7002801);
61+
assert.hslEqual(d3.hsl("steelblue").brighter(.5), 207.272727, .44, .5858964);
62+
assert.hslEqual(d3.hsl("steelblue").brighter(1), 207.272727, .44, .7002801);
63+
assert.hslEqual(d3.hsl("steelblue").brighter(2), 207.272727, .44, 1.0004002);
6764
},
68-
"can derive a darker color": function(hsl) {
69-
assert.hslEqual(hsl("lightsteelblue").darker(), 213.913043, .4107143, .5462745);
70-
assert.hslEqual(hsl("lightsteelblue").darker(.5), 213.913043, .4107143, .6529229);
71-
assert.hslEqual(hsl("lightsteelblue").darker(1), 213.913043, .4107143, .5462745);
72-
assert.hslEqual(hsl("lightsteelblue").darker(2), 213.913043, .4107143, .38239216);
65+
"can derive a darker color": function(d3) {
66+
assert.hslEqual(d3.hsl("lightsteelblue").darker(), 213.913043, .4107143, .5462745);
67+
assert.hslEqual(d3.hsl("lightsteelblue").darker(.5), 213.913043, .4107143, .6529229);
68+
assert.hslEqual(d3.hsl("lightsteelblue").darker(1), 213.913043, .4107143, .5462745);
69+
assert.hslEqual(d3.hsl("lightsteelblue").darker(2), 213.913043, .4107143, .38239216);
7370
},
74-
"string coercion returns RGB format": function(hsl) {
75-
assert.strictEqual(hsl("hsl(60, 100%, 20%)") + "", "#666600");
76-
assert.strictEqual(hsl(d3.hsl(60, 1, .2)) + "", "#666600");
71+
"string coercion returns RGB format": function(d3) {
72+
assert.strictEqual(d3.hsl("hsl(60, 100%, 20%)") + "", "#666600");
73+
assert.strictEqual(d3.hsl(d3.hsl(60, 1, .2)) + "", "#666600");
7774
}
7875
}
7976
});

test/color/lab-test.js

Lines changed: 41 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
1-
require("../env");
2-
31
var vows = require("vows"),
2+
load = require("../load"),
43
assert = require("../env-assert");
54

65
var suite = vows.describe("d3.lab");
76

87
suite.addBatch({
98
"lab": {
10-
topic: function() {
11-
return d3.lab;
12-
},
13-
"converts string channel values to numbers": function(lab) {
14-
assertLabEqual(lab("50", "-4", "-32"), 50, -4, -32);
9+
topic: load("color/lab"),
10+
"converts string channel values to numbers": function(d3) {
11+
assertLabEqual(d3.lab("50", "-4", "-32"), 50, -4, -32);
1512
},
16-
"converts null channel values to zero": function(lab) {
17-
assertLabEqual(lab(null, null, null), 0, 0, 0);
13+
"converts null channel values to zero": function(d3) {
14+
assertLabEqual(d3.lab(null, null, null), 0, 0, 0);
1815
},
19-
"exposes l, a and b properties": function(lab) {
20-
var color = lab(50, -4, -32);
16+
"exposes l, a and b properties": function(d3) {
17+
var color = d3.lab(50, -4, -32);
2118
assert.equal(color.l, 50);
2219
assert.equal(color.a, -4);
2320
assert.equal(color.b, -32);
2421
},
25-
"changing l, a or b affects the string format": function(lab) {
26-
var color = lab(50, -4, -32);
22+
"changing l, a or b affects the string format": function(d3) {
23+
var color = d3.lab(50, -4, -32);
2724
assert.equal(color + "", "#3f7cad");
2825
color.l++;
2926
assert.equal(color + "", "#427eb0");
@@ -32,50 +29,50 @@ suite.addBatch({
3229
color.b++;
3330
assert.equal(color + "", "#487eae");
3431
},
35-
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(lab) {
36-
assertLabEqual(lab("#abc"), 75.10497524893663, -2.292114632248876, -10.528266458853786);
32+
"parses hexadecimal shorthand format (e.g., \"#abc\")": function(d3) {
33+
assertLabEqual(d3.lab("#abc"), 75.10497524893663, -2.292114632248876, -10.528266458853786);
3734
},
38-
"parses hexadecimal format (e.g., \"#abcdef\")": function(lab) {
39-
assertLabEqual(lab("#abcdef"), 81.04386565274363, -3.6627002800885267, -20.442705201854984);
35+
"parses hexadecimal format (e.g., \"#abcdef\")": function(d3) {
36+
assertLabEqual(d3.lab("#abcdef"), 81.04386565274363, -3.6627002800885267, -20.442705201854984);
4037
},
41-
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(lab) {
42-
assertLabEqual(lab("hsl(210, 64.7058%, 13.33333%)"), 12.65624852526134, 0.12256520883417721, -16.833209795877284);
38+
"parses HSL format (e.g., \"hsl(210, 64%, 13%)\")": function(d3) {
39+
assertLabEqual(d3.lab("hsl(210, 64.7058%, 13.33333%)"), 12.65624852526134, 0.12256520883417721, -16.833209795877284);
4340
},
44-
"parses color names (e.g., \"moccasin\")": function(lab) {
45-
assertLabEqual(lab("moccasin"), 91.72317744746022, 2.4393469358685027, 26.359832514614844);
41+
"parses color names (e.g., \"moccasin\")": function(d3) {
42+
assertLabEqual(d3.lab("moccasin"), 91.72317744746022, 2.4393469358685027, 26.359832514614844);
4643
},
47-
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(lab) {
48-
assertLabEqual(lab("rgb(102, 102, 0)"), 41.73251953866431, -10.998411255098816, 48.21006600604577);
44+
"parses and converts RGB format (e.g., \"rgb(102, 102, 0)\")": function(d3) {
45+
assertLabEqual(d3.lab("rgb(102, 102, 0)"), 41.73251953866431, -10.998411255098816, 48.21006600604577);
4946
},
50-
"can convert from RGB": function(lab) {
51-
assertLabEqual(lab(d3.rgb(12, 34, 56)), 12.65624852526134, 0.12256520883417721, -16.833209795877284);
47+
"can convert from RGB": function(d3) {
48+
assertLabEqual(d3.lab(d3.rgb(12, 34, 56)), 12.65624852526134, 0.12256520883417721, -16.833209795877284);
5249
},
53-
"can convert from HSL": function(lab) {
54-
assertLabEqual(lab(d3.lab(20, .8, .3)), 20, 0.8, 0.3);
50+
"can convert from HSL": function(d3) {
51+
assertLabEqual(d3.lab(d3.lab(20, .8, .3)), 20, 0.8, 0.3);
5552
},
56-
"can convert to RGB": function(lab) {
57-
assert.rgbEqual(lab("steelblue").rgb(), 70, 130, 180);
53+
"can convert to RGB": function(d3) {
54+
assert.rgbEqual(d3.lab("steelblue").rgb(), 70, 130, 180);
5855
},
59-
"can derive a brighter color": function(lab) {
60-
assertLabEqual(lab("steelblue").brighter(), 70.46551718768575, -4.0774710123572255, -32.19186122981343);
61-
assertLabEqual(lab("steelblue").brighter(.5), 61.46551718768575, -4.0774710123572255, -32.19186122981343);
56+
"can derive a brighter color": function(d3) {
57+
assertLabEqual(d3.lab("steelblue").brighter(), 70.46551718768575, -4.0774710123572255, -32.19186122981343);
58+
assertLabEqual(d3.lab("steelblue").brighter(.5), 61.46551718768575, -4.0774710123572255, -32.19186122981343);
6259
},
63-
"can derive a darker color": function(lab) {
64-
assertLabEqual(lab("lightsteelblue").darker(), 60.45157936968134, -1.2815839134120433, -15.210996213841522);
65-
assertLabEqual(lab("lightsteelblue").darker(.5), 69.45157936968134, -1.2815839134120433, -15.210996213841522);
60+
"can derive a darker color": function(d3) {
61+
assertLabEqual(d3.lab("lightsteelblue").darker(), 60.45157936968134, -1.2815839134120433, -15.210996213841522);
62+
assertLabEqual(d3.lab("lightsteelblue").darker(.5), 69.45157936968134, -1.2815839134120433, -15.210996213841522);
6663
},
67-
"string coercion returns RGB format": function(lab) {
68-
assert.strictEqual(lab("hsl(60, 100%, 20%)") + "", "#666600");
69-
assert.strictEqual(lab(d3.lab(60, -4, -32)) + "", "#5d95c8");
64+
"string coercion returns RGB format": function(d3) {
65+
assert.strictEqual(d3.lab("hsl(60, 100%, 20%)") + "", "#666600");
66+
assert.strictEqual(d3.lab(d3.lab(60, -4, -32)) + "", "#5d95c8");
7067
},
71-
"roundtrip to HSL is idempotent": function(lab) {
72-
assert.hslEqual(d3.hsl(lab("steelblue")), d3.hsl("steelblue"));
68+
"roundtrip to HSL is idempotent": function(d3) {
69+
assert.hslEqual(d3.hsl(d3.lab("steelblue")), d3.hsl("steelblue"));
7370
},
74-
"roundtrip to RGB is idempotent": function(lab) {
75-
assert.hslEqual(d3.rgb(lab("steelblue")), d3.rgb("steelblue"));
71+
"roundtrip to RGB is idempotent": function(d3) {
72+
assert.hslEqual(d3.rgb(d3.lab("steelblue")), d3.rgb("steelblue"));
7673
},
77-
"roundtrip to HCL is idempotent": function(lab) {
78-
assert.hslEqual(d3.hcl(lab("steelblue")), d3.hcl("steelblue"));
74+
"roundtrip to HCL is idempotent": function(d3) {
75+
assert.hslEqual(d3.hcl(d3.lab("steelblue")), d3.hcl("steelblue"));
7976
}
8077
}
8178
});

0 commit comments

Comments
 (0)