UNPKG

d3-sankey-diagram

Version:
112 lines (91 loc) 2.82 kB
import { addDummyNodes, dummyNodes } from '../../src/sortNodes/dummy-nodes.js' import tape from 'tape' import { Graph } from '@dagrejs/graphlib' tape('dummyNodes(edge) adds nothing to short edges', test => { test.deepEqual(dummyNodes({ rank: 0 }, { rank: 1 }), [], 'forwards') test.deepEqual(dummyNodes({ rank: 1, backwards: true }, { rank: 0, backwards: true }), [], 'backwards') test.end() }) tape('dummyNodes(edge) adds forwards nodes to forwards-forwards edges', test => { test.deepEqual(dummyNodes({ rank: 0 }, { rank: 2 }), [ { rank: 1, backwards: false } ]) test.deepEqual(dummyNodes({ rank: 1 }, { rank: 4 }), [ { rank: 2, backwards: false }, { rank: 3, backwards: false } ]) test.end() }) tape('dummyNodes(edge) adds backwards nodes to backwards-backwards edges', test => { test.deepEqual(dummyNodes({ rank: 2, backwards: true }, { rank: 0, backwards: true }), [ { rank: 1, backwards: true } ]) test.deepEqual(dummyNodes({ rank: 4, backwards: true }, { rank: 1, backwards: true }), [ { rank: 3, backwards: true }, { rank: 2, backwards: true } ]) test.end() }) tape('dummyNodes(edge) adds turn-around nodes to forwards-backwards edges', test => { // a --, // | // b <-- * <-` test.deepEqual(dummyNodes({ rank: 1, backwards: false }, { rank: 0, backwards: true }), [ { rank: 1, backwards: true } ]) // a --, // | // b <-` test.deepEqual(dummyNodes({ rank: 0, backwards: false }, { rank: 0, backwards: true }), []) // a --> * --, // | // b <-` test.deepEqual(dummyNodes({ rank: 0, backwards: false }, { rank: 1, backwards: true }), [ { rank: 1, backwards: false } ]) test.end() }) tape('dummyNodes(edge) adds turn-around nodes to backwards-forwards edges', test => { // ,-- a // | // `-> * --> b test.deepEqual(dummyNodes({ rank: 0, backwards: true }, { rank: 1, backwards: false }), [ { rank: 0, backwards: false } ]) // ,-- a // | // `-> b test.deepEqual(dummyNodes({ rank: 0, backwards: true }, { rank: 0, backwards: false }), []) // ,-- * <-- a // | // `-> b test.deepEqual(dummyNodes({ rank: 1, backwards: true }, { rank: 0, backwards: false }), [ { rank: 0, backwards: true } ]) test.end() }) tape('addDummyNodes(G) adds nodes to graph', test => { // // a -- b -- c // `---*---` // const graph = new Graph({ directed: true, multigraph: true }) graph.setNode('a', { rank: 0 }) graph.setNode('b', { rank: 1 }) graph.setNode('c', { rank: 2 }) graph.setEdge('a', 'b', { value: 1 }) graph.setEdge('b', 'c', { value: 1 }) graph.setEdge('a', 'c', { value: 1 }) addDummyNodes(graph) test.deepEqual(graph.nodes(), ['a', 'b', 'c', '__a_c_0']) test.end() })