@@ -106,6 +106,133 @@ tape( 'the function accepts minimal ndarray-like objects (strides)', function te
106106 t . end ( ) ;
107107} ) ;
108108
109+ tape ( 'the function accepts minimal ndarray-like objects (shape)' , function test ( t ) {
110+ var expected ;
111+ var values ;
112+ var out ;
113+ var i ;
114+
115+ values = [
116+ {
117+ 'shape' : [ 3 , 3 , 3 ]
118+ } ,
119+ {
120+ 'shape' : [ 1 , 1 ]
121+ } ,
122+ {
123+ 'shape' : [ 3 , 3 , 0 , 3 ]
124+ } ,
125+ {
126+ 'shape' : [ 1 , 2 , 3 , 4 ]
127+ } ,
128+ {
129+ 'shape' : [ 5 ]
130+ }
131+ ] ;
132+
133+ expected = [
134+ [ 9 , 3 , 1 ] ,
135+ [ 1 , 1 ] ,
136+ [ 0 , 0 , 3 , 1 ] ,
137+ [ 24 , 12 , 4 , 1 ] ,
138+ [ 1 ]
139+ ] ;
140+
141+ for ( i = 0 ; i < values . length ; i ++ ) {
142+ out = strides ( values [ i ] , false ) ;
143+ t . deepEqual ( out , expected [ i ] , 'returns expected value for shape ' + values [ i ] . shape . join ( 'x' ) ) ;
144+ }
145+ t . end ( ) ;
146+ } ) ;
147+
148+ tape ( 'the function accepts minimal ndarray-like objects (shape, order=row-major)' , function test ( t ) {
149+ var expected ;
150+ var values ;
151+ var out ;
152+ var i ;
153+
154+ values = [
155+ {
156+ 'shape' : [ 3 , 3 , 3 ] ,
157+ 'order' : 'row-major'
158+ } ,
159+ {
160+ 'shape' : [ 1 , 1 ] ,
161+ 'order' : 'row-major'
162+ } ,
163+ {
164+ 'shape' : [ 3 , 3 , 0 , 3 ] ,
165+ 'order' : 'row-major'
166+ } ,
167+ {
168+ 'shape' : [ 1 , 2 , 3 , 4 ] ,
169+ 'order' : 'row-major'
170+ } ,
171+ {
172+ 'shape' : [ 5 ] ,
173+ 'order' : 'row-major'
174+ }
175+ ] ;
176+
177+ expected = [
178+ [ 9 , 3 , 1 ] ,
179+ [ 1 , 1 ] ,
180+ [ 0 , 0 , 3 , 1 ] ,
181+ [ 24 , 12 , 4 , 1 ] ,
182+ [ 1 ]
183+ ] ;
184+
185+ for ( i = 0 ; i < values . length ; i ++ ) {
186+ out = strides ( values [ i ] , false ) ;
187+ t . deepEqual ( out , expected [ i ] , 'returns expected value for shape ' + values [ i ] . shape . join ( 'x' ) ) ;
188+ }
189+ t . end ( ) ;
190+ } ) ;
191+
192+ tape ( 'the function accepts minimal ndarray-like objects (shape, order=column-major)' , function test ( t ) {
193+ var expected ;
194+ var values ;
195+ var out ;
196+ var i ;
197+
198+ values = [
199+ {
200+ 'shape' : [ 3 , 3 , 3 ] ,
201+ 'order' : 'column-major'
202+ } ,
203+ {
204+ 'shape' : [ 1 , 1 ] ,
205+ 'order' : 'column-major'
206+ } ,
207+ {
208+ 'shape' : [ 3 , 3 , 0 , 3 ] ,
209+ 'order' : 'column-major'
210+ } ,
211+ {
212+ 'shape' : [ 1 , 2 , 3 , 4 ] ,
213+ 'order' : 'column-major'
214+ } ,
215+ {
216+ 'shape' : [ 5 ] ,
217+ 'order' : 'column-major'
218+ }
219+ ] ;
220+
221+ expected = [
222+ [ 1 , 3 , 9 ] ,
223+ [ 1 , 1 ] ,
224+ [ 1 , 3 , 9 , 0 ] ,
225+ [ 1 , 1 , 2 , 6 ] ,
226+ [ 1 ]
227+ ] ;
228+
229+ for ( i = 0 ; i < values . length ; i ++ ) {
230+ out = strides ( values [ i ] , false ) ;
231+ t . deepEqual ( out , expected [ i ] , 'returns expected value for shape ' + values [ i ] . shape . join ( 'x' ) ) ;
232+ }
233+ t . end ( ) ;
234+ } ) ;
235+
109236tape ( 'the function supports returning a guaranteed copy of an input ndarray strides' , function test ( t ) {
110237 var expected ;
111238 var values ;
0 commit comments