59 строки
1.8 KiB
JavaScript
59 строки
1.8 KiB
JavaScript
var vows = require("vows"),
|
|
load = require("../load"),
|
|
assert = require("../assert");
|
|
|
|
var suite = vows.describe("d3.geo.projection");
|
|
|
|
suite.addBatch({
|
|
"projection": {
|
|
topic: load("geo/projection").expression("d3.geo.projection"),
|
|
"a custom invertible projection": {
|
|
topic: function(projection) {
|
|
function forward(λ, φ) { return [λ, φ]; }
|
|
forward.invert = function(x, y) {};
|
|
return projection(forward);
|
|
},
|
|
|
|
"invert": {
|
|
"can return undefined": function(projection) {
|
|
assert.isUndefined(projection.invert([0, 0]));
|
|
}
|
|
},
|
|
|
|
"scale": {
|
|
"defaults to 150": function(projection) {
|
|
assert.equal(projection.scale(), 150);
|
|
},
|
|
"is coerced to a number": function(projection) {
|
|
assert.strictEqual(projection.scale("400"), projection);
|
|
assert.strictEqual(projection.scale(), 400);
|
|
}
|
|
},
|
|
|
|
"translate": {
|
|
"defaults to [480, 250]": function(projection) {
|
|
assert.deepEqual(projection.translate(), [480, 250]);
|
|
},
|
|
"is coerced to two numbers": function(projection) {
|
|
assert.strictEqual(projection.translate(["23", "141"]), projection);
|
|
assert.strictEqual(projection.translate()[0], 23);
|
|
assert.strictEqual(projection.translate()[1], 141);
|
|
}
|
|
},
|
|
|
|
"rotate": {
|
|
"defaults to [0, 0, 0]": function(projection) {
|
|
assert.deepEqual(projection.rotate(), [0, 0, 0]);
|
|
},
|
|
"is coerced to three numbers": function(projection) {
|
|
assert.strictEqual(projection.rotate(["23", "41"]), projection);
|
|
assert.strictEqual(projection.rotate()[0], 23);
|
|
assert.strictEqual(projection.rotate()[1], 41);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
suite.export(module);
|