| var vows = require("vows"), | |
| load = require("../load"), | |
| assert = require("../assert"); | |
| var suite = vows.describe("d3.layout.force"); | |
| suite.addBatch({ | |
| "force": { | |
| topic: load("layout/force").expression("d3.layout.force").document(), | |
| "default instance": { | |
| topic: function(force) { | |
| return force(); | |
| }, | |
| "friction": { | |
| "defaults to .9": function(f) { | |
| assert.equal(f.friction(), .9); | |
| }, | |
| "can be a number": function(f) { | |
| f.friction(.5); | |
| assert.equal(f.friction(), .5); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.friction(".5"); | |
| assert.strictEqual(f.friction(), .5); | |
| } | |
| }, | |
| "gravity": { | |
| "defaults to .1": function(f) { | |
| assert.equal(f.gravity(), .1); | |
| }, | |
| "can be a number": function(f) { | |
| f.gravity(.5); | |
| assert.equal(f.gravity(), .5); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.gravity(".5"); | |
| assert.strictEqual(f.gravity(), .5); | |
| } | |
| }, | |
| "theta": { | |
| "defaults to .8": function(f) { | |
| assert.equal(f.theta(), .8); | |
| }, | |
| "can be a number": function(f) { | |
| f.theta(.5); | |
| assert.equal(f.theta(), .5); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.theta(".5"); | |
| assert.strictEqual(f.theta(), .5); | |
| } | |
| }, | |
| "charge": { | |
| "defaults to -30": function(f) { | |
| assert.equal(f.charge(), -30); | |
| }, | |
| "can be a number": function(f) { | |
| f.charge(-40); | |
| assert.equal(f.charge(), -40); | |
| }, | |
| "can be a function": function(f) { // TODO expose the computed value? | |
| f.charge(foo); | |
| assert.equal(f.charge(), foo); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.charge("-40"); | |
| assert.strictEqual(f.charge(), -40); | |
| } | |
| }, | |
| "linkDistance": { | |
| "defaults to 20": function(f) { | |
| assert.equal(f.linkDistance(), 20); | |
| }, | |
| "can be a number": function(f) { | |
| f.linkDistance(40); | |
| assert.equal(f.linkDistance(), 40); | |
| }, | |
| "can be a function": function(f) { // TODO expose the computed value? | |
| f.linkDistance(foo); | |
| assert.equal(f.linkDistance(), foo); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.linkDistance("40"); | |
| assert.strictEqual(f.linkDistance(), 40); | |
| } | |
| }, | |
| "linkStrength": { | |
| "defaults to 1": function(f) { | |
| assert.equal(f.linkStrength(), 1); | |
| }, | |
| "can be a number": function(f) { | |
| f.linkStrength(.5); | |
| assert.equal(f.linkStrength(), .5); | |
| }, | |
| "can be a function": function(f) { // TODO expose the computed value? | |
| f.linkStrength(foo); | |
| assert.equal(f.linkStrength(), foo); | |
| }, | |
| "coerces to a number": function(f) { | |
| f.linkStrength(".5"); | |
| assert.strictEqual(f.linkStrength(), .5); | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| function foo(d) { | |
| return d.foo; | |
| } | |
| suite.export(module); |