/
scaleLinear.test.ts
90 lines (89 loc) 路 2.81 KB
/
scaleLinear.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import { scaleLinear } from '../src';
describe('scaleLinear()', () => {
it('should be defined', () => {
expect(scaleLinear).toBeDefined();
});
it('set domain', () => {
const domain = [1, 2];
expect(scaleLinear({ domain: [1, 2] }).domain()).toEqual(domain);
});
it('set range', () => {
const range = [1, 2];
expect(scaleLinear({ range: [1, 2] }).range()).toEqual(range);
});
describe('set clamp', () => {
it('true', () => {
const scale = scaleLinear({ clamp: true });
expect(scale(10)).toEqual(1);
});
it('false', () => {
const scale = scaleLinear({ clamp: false });
expect(scale(10)).toEqual(10);
});
});
describe('set (color) interpolate', () => {
it('string', () => {
const scale = scaleLinear({
domain: [0, 10],
range: ['#ff0000', '#000000'],
interpolate: 'lab',
});
expect(scale(5)).toEqual('rgb(122, 27, 11)');
});
it('config object', () => {
const scale = scaleLinear({
domain: [0, 10],
range: ['#ff0000', '#000000'],
interpolate: {
type: 'rgb',
},
});
expect(scale(5)).toEqual('rgb(128, 0, 0)');
});
it('config object with gamma', () => {
const scale = scaleLinear({
domain: [0, 10],
range: ['#ff0000', '#000000'],
interpolate: {
type: 'rgb',
gamma: 0.9,
},
});
expect(scale(5)).toEqual('rgb(118, 0, 0)');
});
});
describe('set nice', () => {
it('true', () => {
const scale = scaleLinear({ domain: [0.1, 0.91], nice: true });
expect(scale.domain()).toEqual([0.1, 1]);
});
it('false', () => {
const scale = scaleLinear({ domain: [0.1, 0.91], nice: false });
expect(scale.domain()).toEqual([0.1, 0.91]);
});
});
describe('set round', () => {
it('true', () => {
const scale = scaleLinear({ domain: [0, 10], range: [0, 10], round: true });
expect(scale(2.2)).toEqual(2);
expect(scale(2.6)).toEqual(3);
});
it('false', () => {
const scale = scaleLinear({ domain: [0, 10], range: [0, 10], round: false });
expect(scale(2.2)).toEqual(2.2);
expect(scale(2.6)).toEqual(2.6);
});
});
describe('set zero', () => {
it('true', () => {
expect(scaleLinear({ domain: [1, 2], zero: true }).domain()).toEqual([0, 2]);
expect(scaleLinear({ domain: [-2, -1], zero: true }).domain()).toEqual([-2, 0]);
expect(scaleLinear({ domain: [-2, 3], zero: true }).domain()).toEqual([-2, 3]);
});
it('false', () => {
expect(scaleLinear({ domain: [1, 2], zero: false }).domain()).toEqual([1, 2]);
expect(scaleLinear({ domain: [-2, -1], zero: false }).domain()).toEqual([-2, -1]);
expect(scaleLinear({ domain: [-2, 3], zero: false }).domain()).toEqual([-2, 3]);
});
});
});