Add simple test for d3.interpolateTransform.
This commit is contained in:
Родитель
ba7bbe61df
Коммит
537e9e234a
|
@ -0,0 +1,60 @@
|
||||||
|
var vows = require("vows"),
|
||||||
|
load = require("../load"),
|
||||||
|
assert = require("../assert");
|
||||||
|
|
||||||
|
var suite = vows.describe("d3.interpolateTransform");
|
||||||
|
|
||||||
|
suite.addBatch({
|
||||||
|
"interpolateTransform": {
|
||||||
|
topic: load("interpolate/transform").document(),
|
||||||
|
"interpolation of a decomposed transform": {
|
||||||
|
topic: function(d3) {
|
||||||
|
// Use a custom d3.transform to parse a decomposed transform, since
|
||||||
|
// JSDOM doesn't support consolidating SVG transform strings.
|
||||||
|
d3.transform = function(s) {
|
||||||
|
var m = s.split(/,/g).map(Number);
|
||||||
|
return {
|
||||||
|
translate: [m[0], m[1]],
|
||||||
|
rotate: m[2],
|
||||||
|
skew: m[3],
|
||||||
|
scale: [m[4], m[5]]
|
||||||
|
};
|
||||||
|
};
|
||||||
|
return d3;
|
||||||
|
},
|
||||||
|
"identity": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 0, 1, 1] + "")(.4), "");
|
||||||
|
},
|
||||||
|
"translate": {
|
||||||
|
"x": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [10, 0, 0, 0, 1, 1] + "")(.4), "translate(4,0)");
|
||||||
|
},
|
||||||
|
"y": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 10, 0, 0, 1, 1] + "")(.4), "translate(0,4)");
|
||||||
|
},
|
||||||
|
"x and y": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [1, 10, 0, 0, 1, 1] + "")(.4), "translate(0.4,4)");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rotate": {
|
||||||
|
"simple": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, -10, 0, 1, 1] + "", [0, 0, 30, 0, 1, 1] + "")(.4), "rotate(6)");
|
||||||
|
},
|
||||||
|
"with constant translate": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([5, 6, -10, 0, 1, 1] + "", [5, 6, 30, 0, 1, 1] + "")(.4), "translate(5,6)rotate(6)");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"skew": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 40, 1, 1] + "")(.4), "skewX(16)");
|
||||||
|
},
|
||||||
|
"scale": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [0, 0, 0, 0, 10, 1] + "")(.5), "scale(5.5,1)");
|
||||||
|
},
|
||||||
|
"translate and rotate": function(d3) {
|
||||||
|
assert.equal(d3.interpolateTransform([0, 0, 0, 0, 1, 1] + "", [100, 0, 90, 0, 1, 1] + "")(.5), "translate(50,0)rotate(45)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
suite.export(module);
|
Загрузка…
Ссылка в новой задаче