@@ -28,130 +28,130 @@ it(`windowX(k, options) is equivalent to windowX({k, anchor: "middle", reduce: "
28
28
assert . deepStrictEqual ( m1 . x . transform ( ) , m2 . x . transform ( ) ) ;
29
29
} ) ;
30
30
31
- it ( `windowX(k , options) computes a moving average of window size k` , ( ) => {
31
+ it ( `windowX({k, strict: true} , options) computes a moving average of window size k` , ( ) => {
32
32
const data = range ( 6 ) ;
33
- const m1 = applyTransform ( Plot . windowX ( 1 , { x : d => d } ) , data ) ;
33
+ const m1 = applyTransform ( Plot . windowX ( { k : 1 , strict : true } , { x : d => d } ) , data ) ;
34
34
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 0 , 1 , 2 , 3 , 4 , 5 ] ) ;
35
- const m2 = applyTransform ( Plot . windowX ( 2 , { x : d => d } ) , data ) ;
35
+ const m2 = applyTransform ( Plot . windowX ( { k : 2 , strict : true } , { x : d => d } ) , data ) ;
36
36
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , , ] ) ;
37
- const m3 = applyTransform ( Plot . windowX ( 3 , { x : d => d } ) , data ) ;
37
+ const m3 = applyTransform ( Plot . windowX ( { k : 3 , strict : true } , { x : d => d } ) , data ) ;
38
38
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 1 , 2 , 3 , 4 , , ] ) ;
39
- const m4 = applyTransform ( Plot . windowX ( 4 , { x : d => d } ) , data ) ;
39
+ const m4 = applyTransform ( Plot . windowX ( { k : 4 , strict : true } , { x : d => d } ) , data ) ;
40
40
assert . deepStrictEqual ( m4 . x . transform ( ) , [ , 1.5 , 2.5 , 3.5 , , , ] ) ;
41
41
} ) ;
42
42
43
- it ( `windowX({reduce: "mean" }) produces NaN if the current window contains NaN` , ( ) => {
43
+ it ( `windowX({k, strict: true }) produces NaN if the current window contains NaN` , ( ) => {
44
44
const data = [ 1 , 1 , 1 , null , 1 , 1 , 1 , 1 , 1 , NaN , 1 , 1 , 1 ] ;
45
- const m1 = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 1 , x : d => d } ) , data ) ;
45
+ const m1 = applyTransform ( Plot . windowX ( { k : 1 , strict : true , x : d => d } ) , data ) ;
46
46
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 1 , 1 , 1 , NaN , 1 , 1 , 1 , 1 , 1 , NaN , 1 , 1 , 1 ] ) ;
47
- const m2 = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 2 , x : d => d } ) , data ) ;
47
+ const m2 = applyTransform ( Plot . windowX ( { k : 2 , strict : true , x : d => d } ) , data ) ;
48
48
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 1 , 1 , NaN , NaN , 1 , 1 , 1 , 1 , NaN , NaN , 1 , 1 , , ] ) ;
49
- const m3 = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 3 , x : d => d } ) , data ) ;
49
+ const m3 = applyTransform ( Plot . windowX ( { k : 3 , strict : true , x : d => d } ) , data ) ;
50
50
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 1 , NaN , NaN , NaN , 1 , 1 , 1 , NaN , NaN , NaN , 1 , , ] ) ;
51
51
} ) ;
52
52
53
- it ( `windowX({reduce: "mean" }) treats null as NaN` , ( ) => {
53
+ it ( `windowX({k, strict: true }) treats null as NaN` , ( ) => {
54
54
const data = [ 1 , 1 , 1 , null , 1 , 1 , 1 , 1 , 1 , null , 1 , 1 , 1 ] ;
55
- const m3 = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 3 , x : d => d } ) , data ) ;
55
+ const m3 = applyTransform ( Plot . windowX ( { k : 3 , strict : true , x : d => d } ) , data ) ;
56
56
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 1 , NaN , NaN , NaN , 1 , 1 , 1 , NaN , NaN , NaN , 1 , , ] ) ;
57
57
} ) ;
58
58
59
- it ( `windowX({reduce: "mean" , anchor}) respects the given anchor` , ( ) => {
59
+ it ( `windowX({k, strict: true , anchor}) respects the given anchor` , ( ) => {
60
60
const data = [ 0 , 1 , 2 , 3 , 4 , 5 ] ;
61
- const mc = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 3 , anchor : "middle" , x : d => d } ) , data ) ;
61
+ const mc = applyTransform ( Plot . windowX ( { k : 3 , strict : true , anchor : "middle" , x : d => d } ) , data ) ;
62
62
assert . deepStrictEqual ( mc . x . transform ( ) , [ , 1 , 2 , 3 , 4 , , ] ) ;
63
- const ml = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 3 , anchor : "start" , x : d => d } ) , data ) ;
63
+ const ml = applyTransform ( Plot . windowX ( { k : 3 , strict : true , anchor : "start" , x : d => d } ) , data ) ;
64
64
assert . deepStrictEqual ( ml . x . transform ( ) , [ 1 , 2 , 3 , 4 , , , ] ) ;
65
- const mt = applyTransform ( Plot . windowX ( { reduce : "mean" , k : 3 , anchor : "end" , x : d => d } ) , data ) ;
65
+ const mt = applyTransform ( Plot . windowX ( { k : 3 , strict : true , anchor : "end" , x : d => d } ) , data ) ;
66
66
assert . deepStrictEqual ( mt . x . transform ( ) , [ , , 1 , 2 , 3 , 4 ] ) ;
67
67
} ) ;
68
68
69
- it ( `windowX({reduce: "mean", k, extend: true} ) truncates the window at the start and end` , ( ) => {
69
+ it ( `windowX(k ) truncates the window at the start and end` , ( ) => {
70
70
const data = range ( 6 ) ;
71
- const m1 = applyTransform ( Plot . windowX ( { k : 1 , extend : true } , { x : d => d } ) , data ) ;
71
+ const m1 = applyTransform ( Plot . windowX ( 1 , { x : d => d } ) , data ) ;
72
72
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 0 , 1 , 2 , 3 , 4 , 5 ] ) ;
73
- const m2 = applyTransform ( Plot . windowX ( { k : 2 , extend : true } , { x : d => d } ) , data ) ;
73
+ const m2 = applyTransform ( Plot . windowX ( 2 , { x : d => d } ) , data ) ;
74
74
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5 ] ) ;
75
- const m3 = applyTransform ( Plot . windowX ( { k : 3 , extend : true } , { x : d => d } ) , data ) ;
75
+ const m3 = applyTransform ( Plot . windowX ( 3 , { x : d => d } ) , data ) ;
76
76
assert . deepStrictEqual ( m3 . x . transform ( ) , [ 0.5 , 1 , 2 , 3 , 4 , 4.5 ] ) ;
77
- const m4 = applyTransform ( Plot . windowX ( { k : 4 , extend : true } , { x : d => d } ) , data ) ;
77
+ const m4 = applyTransform ( Plot . windowX ( 4 , { x : d => d } ) , data ) ;
78
78
assert . deepStrictEqual ( m4 . x . transform ( ) , [ 1 , 1.5 , 2.5 , 3.5 , 4 , 4.5 ] ) ;
79
79
} ) ;
80
80
81
- it ( `windowX({reduce: "mean", k, extend: true , anchor: "start"}) truncates the window at the end` , ( ) => {
81
+ it ( `windowX({k , anchor: "start"}) truncates the window at the end` , ( ) => {
82
82
const data = range ( 6 ) ;
83
- const m1 = applyTransform ( Plot . windowX ( { k : 1 , extend : true , anchor : "start" } , { x : d => d } ) , data ) ;
83
+ const m1 = applyTransform ( Plot . windowX ( { k : 1 , anchor : "start" } , { x : d => d } ) , data ) ;
84
84
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 0 , 1 , 2 , 3 , 4 , 5 ] ) ;
85
- const m2 = applyTransform ( Plot . windowX ( { k : 2 , extend : true , anchor : "start" } , { x : d => d } ) , data ) ;
85
+ const m2 = applyTransform ( Plot . windowX ( { k : 2 , anchor : "start" } , { x : d => d } ) , data ) ;
86
86
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5 ] ) ;
87
- const m3 = applyTransform ( Plot . windowX ( { k : 3 , extend : true , anchor : "start" } , { x : d => d } ) , data ) ;
87
+ const m3 = applyTransform ( Plot . windowX ( { k : 3 , anchor : "start" } , { x : d => d } ) , data ) ;
88
88
assert . deepStrictEqual ( m3 . x . transform ( ) , [ 1 , 2 , 3 , 4 , 4.5 , 5 ] ) ;
89
- const m4 = applyTransform ( Plot . windowX ( { k : 4 , extend : true , anchor : "start" } , { x : d => d } ) , data ) ;
89
+ const m4 = applyTransform ( Plot . windowX ( { k : 4 , anchor : "start" } , { x : d => d } ) , data ) ;
90
90
assert . deepStrictEqual ( m4 . x . transform ( ) , [ 1.5 , 2.5 , 3.5 , 4 , 4.5 , 5 ] ) ;
91
91
} ) ;
92
92
93
- it ( `windowX({reduce: "mean", k, extend: true , anchor: "end"}) truncates the window at the start` , ( ) => {
93
+ it ( `windowX({k , anchor: "end"}) truncates the window at the start` , ( ) => {
94
94
const data = range ( 6 ) ;
95
- const m1 = applyTransform ( Plot . windowX ( { k : 1 , extend : true , anchor : "end" } , { x : d => d } ) , data ) ;
95
+ const m1 = applyTransform ( Plot . windowX ( { k : 1 , anchor : "end" } , { x : d => d } ) , data ) ;
96
96
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 0 , 1 , 2 , 3 , 4 , 5 ] ) ;
97
- const m2 = applyTransform ( Plot . windowX ( { k : 2 , extend : true , anchor : "end" } , { x : d => d } ) , data ) ;
97
+ const m2 = applyTransform ( Plot . windowX ( { k : 2 , anchor : "end" } , { x : d => d } ) , data ) ;
98
98
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 0 , 0.5 , 1.5 , 2.5 , 3.5 , 4.5 ] ) ;
99
- const m3 = applyTransform ( Plot . windowX ( { k : 3 , extend : true , anchor : "end" } , { x : d => d } ) , data ) ;
99
+ const m3 = applyTransform ( Plot . windowX ( { k : 3 , anchor : "end" } , { x : d => d } ) , data ) ;
100
100
assert . deepStrictEqual ( m3 . x . transform ( ) , [ 0 , 0.5 , 1 , 2 , 3 , 4 ] ) ;
101
- const m4 = applyTransform ( Plot . windowX ( { k : 4 , extend : true , anchor : "end" } , { x : d => d } ) , data ) ;
101
+ const m4 = applyTransform ( Plot . windowX ( { k : 4 , anchor : "end" } , { x : d => d } ) , data ) ;
102
102
assert . deepStrictEqual ( m4 . x . transform ( ) , [ 0 , 0.5 , 1 , 1.5 , 2.5 , 3.5 ] ) ;
103
103
} ) ;
104
104
105
- it ( `windowX({reduce: "mean", k, extend: true} ) handles k being bigger than the data size` , ( ) => {
105
+ it ( `windowX(k ) handles k being bigger than the data size` , ( ) => {
106
106
const data = range ( 6 ) ;
107
- const m3 = applyTransform ( Plot . windowX ( { k : 3 , extend : true } , { x : d => d } ) , data ) ;
107
+ const m3 = applyTransform ( Plot . windowX ( 3 , { x : d => d } ) , data ) ;
108
108
assert . deepStrictEqual ( m3 . x . transform ( ) , [ 0.5 , 1 , 2 , 3 , 4 , 4.5 ] ) ;
109
- const m5 = applyTransform ( Plot . windowX ( { k : 5 , extend : true } , { x : d => d } ) , data ) ;
109
+ const m5 = applyTransform ( Plot . windowX ( 5 , { x : d => d } ) , data ) ;
110
110
assert . deepStrictEqual ( m5 . x . transform ( ) , [ 1 , 1.5 , 2 , 3 , 3.5 , 4 ] ) ;
111
- const m6 = applyTransform ( Plot . windowX ( { k : 6 , extend : true } , { x : d => d } ) , data ) ;
111
+ const m6 = applyTransform ( Plot . windowX ( 6 , { x : d => d } ) , data ) ;
112
112
assert . deepStrictEqual ( m6 . x . transform ( ) , [ 1.5 , 2 , 2.5 , 3 , 3.5 , 4 ] ) ;
113
- const m7 = applyTransform ( Plot . windowX ( { k : 7 , extend : true } , { x : d => d } ) , data ) ;
113
+ const m7 = applyTransform ( Plot . windowX ( 7 , { x : d => d } ) , data ) ;
114
114
assert . deepStrictEqual ( m7 . x . transform ( ) , [ 1.5 , 2 , 2.5 , 2.5 , 3 , 3.5 ] ) ;
115
- const m8 = applyTransform ( Plot . windowX ( { k : 8 , extend : true } , { x : d => d } ) , data ) ;
115
+ const m8 = applyTransform ( Plot . windowX ( 8 , { x : d => d } ) , data ) ;
116
116
assert . deepStrictEqual ( m8 . x . transform ( ) , [ 2 , 2.5 , 2.5 , 2.5 , 3 , 3.5 ] ) ;
117
- const m9 = applyTransform ( Plot . windowX ( { k : 9 , extend : true } , { x : d => d } ) , data ) ;
117
+ const m9 = applyTransform ( Plot . windowX ( 9 , { x : d => d } ) , data ) ;
118
118
assert . deepStrictEqual ( m9 . x . transform ( ) , [ 2 , 2.5 , 2.5 , 2.5 , 2.5 , 3 ] ) ;
119
- const m10 = applyTransform ( Plot . windowX ( { k : 10 , extend : true } , { x : d => d } ) , data ) ;
119
+ const m10 = applyTransform ( Plot . windowX ( 10 , { x : d => d } ) , data ) ;
120
120
assert . deepStrictEqual ( m10 . x . transform ( ) , [ 2.5 , 2.5 , 2.5 , 2.5 , 2.5 , 3 ] ) ;
121
- const m11 = applyTransform ( Plot . windowX ( { k : 11 , extend : true } , { x : d => d } ) , data ) ;
121
+ const m11 = applyTransform ( Plot . windowX ( 11 , { x : d => d } ) , data ) ;
122
122
assert . deepStrictEqual ( m11 . x . transform ( ) , [ 2.5 , 2.5 , 2.5 , 2.5 , 2.5 , 2.5 ] ) ;
123
123
} ) ;
124
124
125
- it ( `windowX({reduce: "max", k}) computes a moving maximum of window size k` , ( ) => {
125
+ it ( `windowX({reduce: "max", k, strict: true }) computes a moving maximum of window size k` , ( ) => {
126
126
const data = [ 0 , 1 , 2 , 3 , 4 , 5 ] ;
127
- const m1 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 1 , x : d => d } ) , data ) ;
127
+ const m1 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 1 , strict : true , x : d => d } ) , data ) ;
128
128
assert . deepStrictEqual ( m1 . x . transform ( ) , [ 0 , 1 , 2 , 3 , 4 , 5 ] ) ;
129
- const m2 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 2 , x : d => d } ) , data ) ;
129
+ const m2 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 2 , strict : true , x : d => d } ) , data ) ;
130
130
assert . deepStrictEqual ( m2 . x . transform ( ) , [ 1 , 2 , 3 , 4 , 5 , , ] ) ;
131
- const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , x : d => d } ) , data ) ;
131
+ const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , x : d => d } ) , data ) ;
132
132
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 2 , 3 , 4 , 5 , , ] ) ;
133
- const m4 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 4 , x : d => d } ) , data ) ;
133
+ const m4 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 4 , strict : true , x : d => d } ) , data ) ;
134
134
assert . deepStrictEqual ( m4 . x . transform ( ) , [ , 3 , 4 , 5 , , , ] ) ;
135
135
} ) ;
136
136
137
- it ( `windowX({reduce: "max"}) produces NaN if the current window contains NaN` , ( ) => {
137
+ it ( `windowX({reduce: "max", k, strict: true }) produces NaN if the current window contains NaN` , ( ) => {
138
138
const data = [ 1 , 1 , 1 , NaN , 1 , 1 , 1 , 1 , 1 , NaN , NaN , NaN , NaN , 1 ] ;
139
- const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , x : d => d } ) , data ) ;
139
+ const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , x : d => d } ) , data ) ;
140
140
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 1 , NaN , NaN , NaN , 1 , 1 , 1 , NaN , NaN , NaN , NaN , NaN , , ] ) ;
141
141
} ) ;
142
142
143
- it ( `windowX({reduce: "max"}) treats null as NaN` , ( ) => {
143
+ it ( `windowX({reduce: "max", k, strict: true }) treats null as NaN` , ( ) => {
144
144
const data = [ 1 , 1 , 1 , null , 1 , 1 , 1 , 1 , 1 , null , null , null , null , 1 ] ;
145
- const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , x : d => d } ) , data ) ;
145
+ const m3 = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , x : d => d } ) , data ) ;
146
146
assert . deepStrictEqual ( m3 . x . transform ( ) , [ , 1 , NaN , NaN , NaN , 1 , 1 , 1 , NaN , NaN , NaN , NaN , NaN , , ] ) ;
147
147
} ) ;
148
148
149
- it ( `windowX({reduce: "max", anchor}) respects the given anchor` , ( ) => {
149
+ it ( `windowX({reduce: "max", k, strict: true, anchor}) respects the given anchor` , ( ) => {
150
150
const data = [ 0 , 1 , 2 , 3 , 4 , 5 ] ;
151
- const mc = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , anchor : "middle" , x : d => d } ) , data ) ;
151
+ const mc = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , anchor : "middle" , x : d => d } ) , data ) ;
152
152
assert . deepStrictEqual ( mc . x . transform ( ) , [ , 2 , 3 , 4 , 5 , , ] ) ;
153
- const ml = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , anchor : "start" , x : d => d } ) , data ) ;
153
+ const ml = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , anchor : "start" , x : d => d } ) , data ) ;
154
154
assert . deepStrictEqual ( ml . x . transform ( ) , [ 2 , 3 , 4 , 5 , , , ] ) ;
155
- const mt = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , anchor : "end" , x : d => d } ) , data ) ;
155
+ const mt = applyTransform ( Plot . windowX ( { reduce : "max" , k : 3 , strict : true , anchor : "end" , x : d => d } ) , data ) ;
156
156
assert . deepStrictEqual ( mt . x . transform ( ) , [ , , 2 , 3 , 4 , 5 ] ) ;
157
157
} ) ;
0 commit comments