1 | import { test } from 'tape';
|
2 | import * as d3 from '../';
|
3 |
|
4 | test('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 |
|
16 | test('set origin', function(t) {
|
17 | const _3d = d3._3d().origin([100, 100]);
|
18 | t.deepEqual(_3d.origin(), [100, 100]);
|
19 | t.end();
|
20 | });
|
21 |
|
22 | test('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 |
|
28 | test('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 |
|
40 | test('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 |
|
47 | test('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 |
|
55 | test('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 |
|
73 | test('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 | });
|