Add test for svg.line.
This commit is contained in:
Родитель
aae78283b1
Коммит
5e9bead57f
|
@ -0,0 +1,83 @@
|
||||||
|
require("../env");
|
||||||
|
require("../../d3");
|
||||||
|
|
||||||
|
var vows = require("vows"),
|
||||||
|
assert = require("assert");
|
||||||
|
|
||||||
|
var suite = vows.describe("d3.svg.line");
|
||||||
|
|
||||||
|
suite.addBatch({
|
||||||
|
"line": {
|
||||||
|
topic: function() {
|
||||||
|
return d3.svg.line;
|
||||||
|
},
|
||||||
|
"default accessors assume tuple input": function(line) {
|
||||||
|
var a = line();
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0L1,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0L1,1L2,0");
|
||||||
|
},
|
||||||
|
"can specify x-accessor as a function": function(line) {
|
||||||
|
var i = 0, a = line().x(function() { return ++i; });
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M1,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M2,0L3,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M4,0L5,1L6,0");
|
||||||
|
},
|
||||||
|
"can specify y-accessor as a function": function(line) {
|
||||||
|
var i = 0, a = line().y(function() { return ++i; });
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,2L1,3");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,4L1,5L2,6");
|
||||||
|
},
|
||||||
|
"can specify y-accessor as a constant": function(line) {
|
||||||
|
var a = line().y(-1);
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,-1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,-1L1,-1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,-1L1,-1L2,-1");
|
||||||
|
},
|
||||||
|
"supports step-before interpolation": function(line) {
|
||||||
|
var a = line().interpolate("step-before");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0V1H1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0V1H1V0H2");
|
||||||
|
},
|
||||||
|
"supports step-after interpolation": function(line) {
|
||||||
|
var a = line().interpolate("step-after");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0H1V1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0H1V1H2V0");
|
||||||
|
},
|
||||||
|
"supports basis interpolation": function(line) {
|
||||||
|
var a = line().interpolate("basis");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0L1,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0C0,0,0,0,0.16666666666666666,0.16666666666666666C0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,1,0.6666666666666666C1.3333333333333333,0.6666666666666666,1.6666666666666665,0.3333333333333333,1.8333333333333333,0.16666666666666666C2,0,2,0,1.9999999999999998,0");
|
||||||
|
},
|
||||||
|
"supports basis-closed interpolation": function(line) {
|
||||||
|
var a = line().interpolate("basis-closed");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0C0,0,0,0,0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0.3333333333333333,0.3333333333333333C0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666C0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M1.5,0.16666666666666666C1.3333333333333333,0,0.6666666666666666,0,0.5,0.16666666666666666C0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,1,0.6666666666666666C1.3333333333333333,0.6666666666666666,1.6666666666666665,0.3333333333333333,1.5,0.16666666666666666");
|
||||||
|
},
|
||||||
|
"supports cardinal interpolation": function(line) {
|
||||||
|
var a = line().interpolate("cardinal");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0L1,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0Q0.7999999999999999,1,1,1Q1.2,1,2,0");
|
||||||
|
},
|
||||||
|
"supports cardinal-closed interpolation": function(line) {
|
||||||
|
var a = line().interpolate("cardinal-closed");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0L1,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0C-0.15000000000000002,0.15000000000000002,0.7,1,1,1S2.15,0.15000000000000002,2,0S0.15000000000000002,-0.15000000000000002,0,0");
|
||||||
|
},
|
||||||
|
"supports monotone interpolation": function(line) {
|
||||||
|
var a = line().interpolate("monotone");
|
||||||
|
assert.pathEqual(a([[0, 0]]), "M0,0");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1]]), "M0,0L1,1");
|
||||||
|
assert.pathEqual(a([[0, 0], [1, 1], [2, 0]]), "M0,0C0.08333333333333333,0.08333333333333333,0.6666666666666667,1,1,1S1.9166666666666667,0.08333333333333333,2,0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
suite.export(module);
|
|
@ -1,93 +0,0 @@
|
||||||
require("./../../lib/env-js/envjs/node");
|
|
||||||
require("./../../lib/sizzle/sizzle");
|
|
||||||
require("./../../d3");
|
|
||||||
|
|
||||||
var line = d3.svg.line();
|
|
||||||
|
|
||||||
console.log("default:");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [1, 1]]:", line([[0, 0], [1, 1]]));
|
|
||||||
console.log(" [[0, 0], [1, 1], [2, 0]]:", line([[0, 0], [1, 1], [2, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.y(-1);
|
|
||||||
|
|
||||||
console.log("y(-1):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [1, 1]]:", line([[0, 0], [1, 1]]));
|
|
||||||
console.log(" [[0, 0], [1, 1], [2, 0]]:", line([[0, 0], [1, 1], [2, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.x(function(d) { return d.x; })
|
|
||||||
.y(function(d) { return d.y; });
|
|
||||||
|
|
||||||
console.log("x(d.x).y(d.y):");
|
|
||||||
console.log(" [{x:0,y:0}]:", line([{x:0,y:0}]));
|
|
||||||
console.log(" [{x:0,y:0},{x:1,y:1}]:", line([{x:0,y:0},{x:1,y:1}]));
|
|
||||||
console.log(" [{x:0,y:0},{x:1,y:1},{x:2,y:0}]:", line([{x:0,y:0},{x:1,y:1},{x:2,y:0}]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("step-before");
|
|
||||||
|
|
||||||
console.log("interpolate(step-before):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [1, 1]]:", line([[0, 0], [1, 1]]));
|
|
||||||
console.log(" [[0, 0], [1, 1], [2, 0]]:", line([[0, 0], [1, 1], [2, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("step-after");
|
|
||||||
|
|
||||||
console.log("interpolate(step-after):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [1, 1]]:", line([[0, 0], [1, 1]]));
|
|
||||||
console.log(" [[0, 0], [1, 1], [2, 0]]:", line([[0, 0], [1, 1], [2, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("basis");
|
|
||||||
|
|
||||||
console.log("interpolate(basis):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [1, 1]]:", line([[0, 0], [1, 1]]));
|
|
||||||
console.log(" [[0, 0], [6, 6], [12, 0]]:", line([[0, 0], [6, 6], [12, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("basis-closed");
|
|
||||||
|
|
||||||
console.log("interpolate(basis-closed):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [6, 6]]:", line([[0, 0], [6, 6]]));
|
|
||||||
console.log(" [[0, 0], [6, 6], [12, 0]]:", line([[0, 0], [6, 6], [12, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("cardinal");
|
|
||||||
|
|
||||||
console.log("interpolate(cardinal):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [5, 5]]:", line([[0, 0], [5, 5]]));
|
|
||||||
console.log(" [[0, 0], [5, 5], [10, 0]]:", line([[0, 0], [5, 5], [10, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("cardinal-closed");
|
|
||||||
|
|
||||||
console.log("interpolate(cardinal-closed):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [5, 5]]:", line([[0, 0], [5, 5]]));
|
|
||||||
console.log(" [[0, 0], [5, 5], [10, 0]]:", line([[0, 0], [5, 5], [10, 0]]));
|
|
||||||
console.log("");
|
|
||||||
|
|
||||||
var line = d3.svg.line()
|
|
||||||
.interpolate("monotone");
|
|
||||||
|
|
||||||
console.log("interpolate(monotone):");
|
|
||||||
console.log(" [[0, 0]]:", line([[0, 0]]));
|
|
||||||
console.log(" [[0, 0], [5, 5]]:", line([[0, 0], [5, 5]]));
|
|
||||||
console.log(" [[0, 0], [5, 5], [10, 0]]:", line([[0, 0], [5, 5], [10, 0]]));
|
|
||||||
console.log("");
|
|
|
@ -1,50 +0,0 @@
|
||||||
default:
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [1, 1]]: M0,0L1,1
|
|
||||||
[[0, 0], [1, 1], [2, 0]]: M0,0L1,1L2,0
|
|
||||||
|
|
||||||
y(-1):
|
|
||||||
[[0, 0]]: M0,-1
|
|
||||||
[[0, 0], [1, 1]]: M0,-1L1,-1
|
|
||||||
[[0, 0], [1, 1], [2, 0]]: M0,-1L1,-1L2,-1
|
|
||||||
|
|
||||||
x(d.x).y(d.y):
|
|
||||||
[{x:0,y:0}]: M0,0
|
|
||||||
[{x:0,y:0},{x:1,y:1}]: M0,0L1,1
|
|
||||||
[{x:0,y:0},{x:1,y:1},{x:2,y:0}]: M0,0L1,1L2,0
|
|
||||||
|
|
||||||
interpolate(step-before):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [1, 1]]: M0,0V1H1
|
|
||||||
[[0, 0], [1, 1], [2, 0]]: M0,0V1H1V0H2
|
|
||||||
|
|
||||||
interpolate(step-after):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [1, 1]]: M0,0H1V1
|
|
||||||
[[0, 0], [1, 1], [2, 0]]: M0,0H1V1H2V0
|
|
||||||
|
|
||||||
interpolate(basis):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [1, 1]]: M0,0L1,1
|
|
||||||
[[0, 0], [6, 6], [12, 0]]: M0,0C0,0,0,0,1,1C2,2,4,4,6,4C8,4,10,2,11,1C12,0,12,0,12,0
|
|
||||||
|
|
||||||
interpolate(basis-closed):
|
|
||||||
[[0, 0]]: M0,0C0,0,0,0,0,0
|
|
||||||
[[0, 0], [6, 6]]: M2,2C2,2,4,4,4,4C4,4,2,2,2,2
|
|
||||||
[[0, 0], [6, 6], [12, 0]]: M9,1C8,0,4,0,3,1C2,2,4,4,6,4C8,4,10,2,9,1
|
|
||||||
|
|
||||||
interpolate(cardinal):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [5, 5]]: M0,0L5,5
|
|
||||||
[[0, 0], [5, 5], [10, 0]]: M0,0Q4,5,5,5Q6,5,10,0
|
|
||||||
|
|
||||||
interpolate(cardinal-closed):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [5, 5]]: M0,0L5,5
|
|
||||||
[[0, 0], [5, 5], [10, 0]]: M0,0C-0.7500000000000001,0.7500000000000001,3.5,5,5,5S10.75,0.7500000000000001,10,0S0.7500000000000001,-0.7500000000000001,0,0
|
|
||||||
|
|
||||||
interpolate(monotone):
|
|
||||||
[[0, 0]]: M0,0
|
|
||||||
[[0, 0], [5, 5]]: M0,0L5,5
|
|
||||||
[[0, 0], [5, 5], [10, 0]]: M0,0C0.4166666666666667,0.4166666666666667,3.333333333333333,5,5,5S9.583333333333334,0.4166666666666667,10,0
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче