Skip to content

Commit 537e9e2

Browse files
committed
Add simple test for d3.interpolateTransform.
1 parent ba7bbe6 commit 537e9e2

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
var vows = require("vows"),
2+
load = require("../load"),
3+
assert = require("../assert");
4+
5+
var suite = vows.describe("d3.interpolateTransform");
6+
7+
suite.addBatch({
8+
"interpolateTransform": {
9+
topic: load("interpolate/transform").document(),
10+
"interpolation of a decomposed transform": {
11+
topic: function(d3) {
12+
// Use a custom d3.transform to parse a decomposed transform, since
13+
// JSDOM doesn't support consolidating SVG transform strings.
14+
d3.transform = function(s) {
15+
var m = s.split(/,/g).map(Number);
16+
return {
17+
translate: [m[0], m[1]],
18+
rotate: m[2],
19+
skew: m[3],
20+
scale: [m[4], m[5]]
21+
};
22+
};
23+
return d3;
24+
},
25+
"identity": function(d3) {
26+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 0, 1, 1] + "")(.4), "");
27+
},
28+
"translate": {
29+
"x": function(d3) {
30+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [10, 0, 0, 0, 1, 1] + "")(.4), "translate(4,0)");
31+
},
32+
"y": function(d3) {
33+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 10, 0, 0, 1, 1] + "")(.4), "translate(0,4)");
34+
},
35+
"x and y": function(d3) {
36+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [1, 10, 0, 0, 1, 1] + "")(.4), "translate(0.4,4)");
37+
}
38+
},
39+
"rotate": {
40+
"simple": function(d3) {
41+
assert.equal(d3.interpolateTransform([0, 0, -10, 0, 1, 1] + "", [0, 0, 30, 0, 1, 1] + "")(.4), "rotate(6)");
42+
},
43+
"with constant translate": function(d3) {
44+
assert.equal(d3.interpolateTransform([5, 6, -10, 0, 1, 1] + "", [5, 6, 30, 0, 1, 1] + "")(.4), "translate(5,6)rotate(6)");
45+
}
46+
},
47+
"skew": function(d3) {
48+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 40, 1, 1] + "")(.4), "skewX(16)");
49+
},
50+
"scale": function(d3) {
51+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 0, 10, 1] + "")(.5), "scale(5.5,1)");
52+
},
53+
"translate and rotate": function(d3) {
54+
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [100, 0, 90, 0, 1, 1] + "")(.5), "translate(50,0)rotate(45)");
55+
}
56+
}
57+
}
58+
});
59+
60+
suite.export(module);

0 commit comments

Comments
 (0)