UNPKG

2.32 kBJavaScriptView Raw
1import { test } from 'tape';
2import * as d3 from '../';
3
4test('d3-3d has expected defaults', function(t) {
5 const _3d = d3._3d();
6 t.deepEqual(_3d.origin(), [0, 0]);
7 t.equal(_3d.scale(), 1);
8 t.equal(_3d.rotateX(), 0);
9 t.equal(_3d.rotateY(), 0);
10 t.equal(_3d.rotateZ(), 0);
11 t.equal(_3d.shape(), 'POINT');
12 t.deepEqual(_3d.rotateCenter(), [0,0,0]);
13 t.end();
14});
15
16test('set origin', function(t) {
17 const _3d = d3._3d().origin([100, 100]);
18 t.deepEqual(_3d.origin(), [100, 100]);
19 t.end();
20});
21
22test('set rotateCenter', function(t) {
23 const _3d = d3._3d().rotateCenter([100, 100, 100]);
24 t.deepEqual(_3d.rotateCenter(), [100, 100, 100]);
25 t.end();
26});
27
28test('set scale', function(t) {
29 const _3d1 = d3._3d();
30 const _3d2 = d3._3d().scale(2);
31 const _3d3 = d3._3d().scale(3);
32 const _3d4 = d3._3d().scale(4);
33 t.equal(_3d1.scale(), 1);
34 t.equal(_3d2.scale(), 2);
35 t.equal(_3d3.scale(), 3);
36 t.equal(_3d4.scale(), 4);
37 t.end();
38});
39
40test('allow method chaining', function(t) {
41 const _3d = d3._3d().origin([200, 200]).scale(100);
42 t.deepEqual(_3d.origin(), [200, 200]);
43 t.equal(_3d.scale(), 100);
44 t.end();
45});
46
47test('set angles', function(t){
48 const _3d = d3._3d().rotateX(Math.PI).rotateY(Math.PI/2).rotateZ(3/2*Math.PI);
49 t.equal(_3d.rotateX(), Math.PI);
50 t.equal(_3d.rotateY(), Math.PI/2);
51 t.equal(_3d.rotateZ(), 3/2*Math.PI);
52 t.end();
53});
54
55test('test x,y,z accesor', function(t){
56 const cubes3D = d3._3d().shape('CUBE').x(function(d){ return d.x; }).y(function(d){ return d.y; }).z(function(d){ return d.z; });
57
58 t.equal(typeof cubes3D.x(), 'function');
59 t.equal(typeof cubes3D.y(), 'function');
60 t.equal(typeof cubes3D.z(), 'function');
61
62 cubes3D.x(1);
63 cubes3D.y(1);
64 cubes3D.z(1);
65
66 t.deepEqual(cubes3D.x(), 1);
67 t.deepEqual(cubes3D.y(), 1);
68 t.deepEqual(cubes3D.z(), 1);
69
70 t.end();
71});
72
73test('test ascending sorting', function(t){
74
75 t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z:10 } }), -1);
76 t.deepEqual(d3._3d().sort({centroid: { z:10 } }, {centroid: { z: 1 } }), 1);
77 t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z: 1 } }), 0);
78 t.deepEqual(d3._3d().sort({centroid: { z: 1 } }, {centroid: { z:'1'} }), 0);
79 t.deepEqual(isNaN(d3._3d().sort({centroid: { z: function(){ return false ;} } }, {centroid: { z:false} })), true);
80
81 t.end();
82});