UNPKG

d3-3d

Version:

D3.js plugin for 3d visualization

83 lines (68 loc) 2.32 kB
import { test } from 'tape'; import * as d3 from '../'; test('d3-3d has expected defaults', function(t) { const _3d = d3._3d(); t.deepEqual(_3d.origin(), [0, 0]); t.equal(_3d.scale(), 1); t.equal(_3d.rotateX(), 0); t.equal(_3d.rotateY(), 0); t.equal(_3d.rotateZ(), 0); t.equal(_3d.shape(), 'POINT'); t.deepEqual(_3d.rotateCenter(), [0,0,0]); t.end(); }); test('set origin', function(t) { const _3d = d3._3d().origin([100, 100]); t.deepEqual(_3d.origin(), [100, 100]); t.end(); }); test('set rotateCenter', function(t) { const _3d = d3._3d().rotateCenter([100, 100, 100]); t.deepEqual(_3d.rotateCenter(), [100, 100, 100]); t.end(); }); test('set scale', function(t) { const _3d1 = d3._3d(); const _3d2 = d3._3d().scale(2); const _3d3 = d3._3d().scale(3); const _3d4 = d3._3d().scale(4); t.equal(_3d1.scale(), 1); t.equal(_3d2.scale(), 2); t.equal(_3d3.scale(), 3); t.equal(_3d4.scale(), 4); t.end(); }); test('allow method chaining', function(t) { const _3d = d3._3d().origin([200, 200]).scale(100); t.deepEqual(_3d.origin(), [200, 200]); t.equal(_3d.scale(), 100); t.end(); }); test('set angles', function(t){ const _3d = d3._3d().rotateX(Math.PI).rotateY(Math.PI/2).rotateZ(3/2*Math.PI); t.equal(_3d.rotateX(), Math.PI); t.equal(_3d.rotateY(), Math.PI/2); t.equal(_3d.rotateZ(), 3/2*Math.PI); t.end(); }); test('test x,y,z accesor', function(t){ const cubes3D = d3._3d().shape('CUBE').x(function(d){ return d.x; }).y(function(d){ return d.y; }).z(function(d){ return d.z; }); t.equal(typeof cubes3D.x(), 'function'); t.equal(typeof cubes3D.y(), 'function'); t.equal(typeof cubes3D.z(), 'function'); cubes3D.x(1); cubes3D.y(1); cubes3D.z(1); t.deepEqual(cubes3D.x(), 1); t.deepEqual(cubes3D.y(), 1); t.deepEqual(cubes3D.z(), 1); t.end(); }); test('test ascending sorting', function(t){ t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z:10 } }), -1); t.deepEqual(d3._3d().sort({centroid: { z:10 } }, {centroid: { z: 1 } }), 1); t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z: 1 } }), 0); t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z:'1'} }), 0); t.deepEqual(isNaN(d3._3d().sort({centroid: { z: function(){ return false ;} } }, {centroid: { z:false} })), true); t.end(); });