| var vows = require("vows"), | |
| load = require("../load"), | |
| assert = require("../assert"); | |
| var suite = vows.describe("d3.layout.cluster"); | |
| suite.addBatch({ | |
| "cluster": { | |
| topic: load("layout/cluster").expression("d3.layout.cluster"), | |
| "can handle an empty children array": function(cluster) { | |
| var c = cluster(); | |
| assert.deepEqual(c.nodes({value: 1, children: [{value: 1, children: []}, {value: 1}]}).map(layout), [ | |
| {value: 1, depth: 0, x: 0.5, y: 0}, | |
| {value: 1, depth: 1, x: 0.25, y: 1}, | |
| {value: 1, depth: 1, x: 0.75, y: 1} | |
| ]); | |
| }, | |
| "can handle zero-valued nodes": function(cluster) { | |
| var c = cluster(); | |
| assert.deepEqual(c.nodes({value: 0, children: [{value: 0}, {value: 1}]}).map(layout), [ | |
| {value: 0, depth: 0, x: 0.5, y: 0}, | |
| {value: 0, depth: 1, x: 0.25, y: 1}, | |
| {value: 1, depth: 1, x: 0.75, y: 1} | |
| ]); | |
| }, | |
| "can handle a single node": function(cluster) { | |
| var c = cluster(); | |
| assert.deepEqual(c.nodes({value: 0}).map(layout), [ | |
| {value: 0, depth: 0, x: 0.5, y: 0} | |
| ]); | |
| } | |
| } | |
| }); | |
| function layout(node) { | |
| return { | |
| value: node.value, | |
| depth: node.depth, | |
| x: node.x, | |
| y: node.y | |
| }; | |
| } | |
| suite.export(module); |