Refactor svg tests using smash.

This commit is contained in:
Mike Bostock 2013-03-14 08:46:45 -07:00
Родитель e65d455ac6
Коммит 0f2b61ae93
10 изменённых файлов: 44 добавлений и 56 удалений

Просмотреть файл

@ -1,5 +1,6 @@
import "svg";
import "area"; import "area";
import "svg";
import "line-radial";
d3.svg.area.radial = function() { d3.svg.area.radial = function() {
var area = d3_svg_area(d3_svg_lineRadial); var area = d3_svg_area(d3_svg_lineRadial);

Просмотреть файл

@ -1,6 +1,7 @@
import "../arrays/map"; import "../arrays/map";
import "../core/functor"; import "../core/functor";
import "../math/trigonometry"; import "../math/trigonometry";
import "svg";
d3.svg.symbol = function() { d3.svg.symbol = function() {
var type = d3_svg_symbolType, var type = d3_svg_symbolType,

Просмотреть файл

@ -1,15 +1,12 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.arc"); var suite = vows.describe("d3.svg.arc");
suite.addBatch({ suite.addBatch({
"arc": { "arc": {
topic: function() { topic: load("svg/arc").expression("d3.svg.arc"),
return d3.svg.arc;
},
"innerRadius defaults to a function accessor": function(arc) { "innerRadius defaults to a function accessor": function(arc) {
var a = arc().outerRadius(100).startAngle(0).endAngle(Math.PI); var a = arc().outerRadius(100).startAngle(0).endAngle(Math.PI);

Просмотреть файл

@ -1,15 +1,13 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
d3 = require("../../"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.area.radial"); var suite = vows.describe("d3.svg.area.radial");
suite.addBatch({ suite.addBatch({
"area.radial": { "area.radial": {
topic: function() { topic: load("svg/area-radial").expression("d3.svg.area.radial"),
return d3.svg.area.radial;
},
"radius is an alias for setting innerRadius and outerRadius": function(area) { "radius is an alias for setting innerRadius and outerRadius": function(area) {
var a = area().radius(f); var a = area().radius(f);
@ -182,18 +180,18 @@ suite.addBatch({
function testInterpolation(interpolate) { function testInterpolation(interpolate) {
var data = [[10, 0], [20, 1], [20, 2], [10, 3]]; var data = [[10, 0], [20, 1], [20, 2], [10, 3]];
var radial = d3.svg.area.radial()
.innerRadius(function(d) { return d[0]; })
.outerRadius(function(d) { return d[0] * 2; })
.angle(function(d) { return d[1]; });
var cartesian = d3.svg.area() var cartesian = d3.svg.area()
.x0(function(d) { return d[0] * Math.cos(d[1] - Math.PI / 2); }) .x0(function(d) { return d[0] * Math.cos(d[1] - Math.PI / 2); })
.x1(function(d) { return 2 * d[0] * Math.cos(d[1] - Math.PI / 2); }) .x1(function(d) { return 2 * d[0] * Math.cos(d[1] - Math.PI / 2); })
.y0(function(d) { return d[0] * Math.sin(d[1] - Math.PI / 2); }) .y0(function(d) { return d[0] * Math.sin(d[1] - Math.PI / 2); })
.y1(function(d) { return 2 * d[0] * Math.sin(d[1] - Math.PI / 2); }); .y1(function(d) { return 2 * d[0] * Math.sin(d[1] - Math.PI / 2); });
return function() { return function(area) {
var radial = area()
.innerRadius(function(d) { return d[0]; })
.outerRadius(function(d) { return d[0] * 2; })
.angle(function(d) { return d[1]; });
assert.pathEqual(radial.interpolate(interpolate)(data), cartesian.interpolate(interpolate)(data)); assert.pathEqual(radial.interpolate(interpolate)(data), cartesian.interpolate(interpolate)(data));
}; };
} }

Просмотреть файл

@ -1,15 +1,13 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
d3 = require("../../"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.area"); var suite = vows.describe("d3.svg.area");
suite.addBatch({ suite.addBatch({
"area": { "area": {
topic: function() { topic: load("svg/area").expression("d3.svg.area"),
return d3.svg.area;
},
"x is an alias for setting x0 and x1": function(area) { "x is an alias for setting x0 and x1": function(area) {
var a = area().x(f); var a = area().x(f);

Просмотреть файл

@ -1,15 +1,17 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
assert = require("../env-assert"); d3 = require("../../"),
load = require("../load"),
assert = require("../env-assert"),
document = d3.selection().node()._ownerDocument,
window = document.defaultView;
var suite = vows.describe("d3.svg.axis"); var suite = vows.describe("d3.svg.axis");
suite.addBatch({ suite.addBatch({
"axis": { "axis": {
topic: function() { topic: load("svg/axis")
return d3.svg.axis; .expression("d3.svg.axis")
}, .sandbox({document: document, window: window}),
"scale": { "scale": {
"defaults to a linear scale": function(axis) { "defaults to a linear scale": function(axis) {

Просмотреть файл

@ -1,15 +1,18 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
assert = require("../env-assert"); d3 = require("../../"),
load = require("../load"),
assert = require("../env-assert"),
jsdom = require("jsdom").jsdom,
document = jsdom("<html><head></head><body></body></html>"),
window = document.createWindow();
var suite = vows.describe("d3.svg.brush"); var suite = vows.describe("d3.svg.brush");
suite.addBatch({ suite.addBatch({
"brush": { "brush": {
topic: function() { topic: load("svg/brush")
return d3.svg.brush; .expression("d3.svg.brush")
}, .sandbox({document: document, window: window}),
"x": { "x": {
"defaults to null": function(brush) { "defaults to null": function(brush) {

Просмотреть файл

@ -1,15 +1,13 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
d3 = require("../../"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.line.radial"); var suite = vows.describe("d3.svg.line.radial");
suite.addBatch({ suite.addBatch({
"line.radial": { "line.radial": {
topic: function() { topic: load("svg/line-radial").expression("d3.svg.line.radial"),
return d3.svg.line.radial;
},
"radius defaults to a function accessor": function(line) { "radius defaults to a function accessor": function(line) {
var l = line(); var l = line();
@ -110,14 +108,12 @@ suite.addBatch({
function testInterpolation(interpolate) { function testInterpolation(interpolate) {
var data = [[10, 0], [20, 1], [20, 2], [10, 3]]; var data = [[10, 0], [20, 1], [20, 2], [10, 3]];
var radial = d3.svg.line.radial();
var cartesian = d3.svg.line() var cartesian = d3.svg.line()
.x(function(d) { return d[0] * Math.cos(d[1] - Math.PI / 2); }) .x(function(d) { return d[0] * Math.cos(d[1] - Math.PI / 2); })
.y(function(d) { return d[0] * Math.sin(d[1] - Math.PI / 2); }); .y(function(d) { return d[0] * Math.sin(d[1] - Math.PI / 2); });
return function() { return function(radial) {
assert.pathEqual(radial.interpolate(interpolate)(data), cartesian.interpolate(interpolate)(data)); assert.pathEqual(radial().interpolate(interpolate)(data), cartesian.interpolate(interpolate)(data));
}; };
} }

Просмотреть файл

@ -1,15 +1,12 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.line"); var suite = vows.describe("d3.svg.line");
suite.addBatch({ suite.addBatch({
"line": { "line": {
topic: function() { topic: load("svg/line").expression("d3.svg.line"),
return d3.svg.line;
},
"x defaults to a function accessor": function(line) { "x defaults to a function accessor": function(line) {
var l = line(); var l = line();

Просмотреть файл

@ -1,15 +1,12 @@
require("../env");
var vows = require("vows"), var vows = require("vows"),
load = require("../load"),
assert = require("../env-assert"); assert = require("../env-assert");
var suite = vows.describe("d3.svg.symbol"); var suite = vows.describe("d3.svg.symbol");
suite.addBatch({ suite.addBatch({
"symbol": { "symbol": {
topic: function() { topic: load("svg/symbol").expression("d3.svg.symbol"),
return d3.svg.symbol;
},
"default symbol is a fixed-size circle": function(symbol) { "default symbol is a fixed-size circle": function(symbol) {
var a = symbol(); var a = symbol();
assert.pathEqual(a(), "M0,4.51351666838205A4.51351666838205,4.51351666838205 0 1,1 0,-4.51351666838205A4.51351666838205,4.51351666838205 0 1,1 0,4.51351666838205Z"); assert.pathEqual(a(), "M0,4.51351666838205A4.51351666838205,4.51351666838205 0 1,1 0,-4.51351666838205A4.51351666838205,4.51351666838205 0 1,1 0,4.51351666838205Z");
@ -69,9 +66,7 @@ suite.addBatch({
} }
}, },
"symbolTypes": { "symbolTypes": {
topic: function() { topic: load("svg/symbol").expression("d3.svg.symbolTypes"),
return d3.svg.symbolTypes;
},
"contains circle": function(types) { "contains circle": function(types) {
assert.isTrue(types.indexOf("circle") != -1); assert.isTrue(types.indexOf("circle") != -1);
}, },