@@ -248,6 +248,60 @@ tape( 'the function converts a view linear index to a linear index in an underly
248
248
t . end ( ) ;
249
249
} ) ;
250
250
251
+ tape ( 'the function converts a view linear index to a linear index in an underlying data buffer (order=row-major, transposed)' , function test ( t ) {
252
+ var strides ;
253
+ var offset ;
254
+ var order ;
255
+ var shape ;
256
+ var idx ;
257
+
258
+ shape = [ 2 , 2 ] ;
259
+ order = 'row-major' ;
260
+ strides = [ 1 , 2 ] ;
261
+ offset = 0 ;
262
+
263
+ idx = vind2bind ( shape , strides , offset , order , 0 , 'throw' ) ;
264
+ t . strictEqual ( idx , 0 , 'returns expected value' ) ;
265
+
266
+ idx = vind2bind ( shape , strides , offset , order , 1 , 'throw' ) ;
267
+ t . strictEqual ( idx , 2 , 'returns expected value' ) ;
268
+
269
+ idx = vind2bind ( shape , strides , offset , order , 2 , 'throw' ) ;
270
+ t . strictEqual ( idx , 1 , 'returns expected value' ) ;
271
+
272
+ idx = vind2bind ( shape , strides , offset , order , 3 , 'throw' ) ;
273
+ t . strictEqual ( idx , 3 , 'returns expected value' ) ;
274
+
275
+ t . end ( ) ;
276
+ } ) ;
277
+
278
+ tape ( 'the function converts a view linear index to a linear index in an underlying data buffer (order=column-major, transposed)' , function test ( t ) {
279
+ var strides ;
280
+ var offset ;
281
+ var order ;
282
+ var shape ;
283
+ var idx ;
284
+
285
+ shape = [ 2 , 2 ] ;
286
+ order = 'column-major' ;
287
+ strides = [ 2 , 1 ] ;
288
+ offset = 0 ;
289
+
290
+ idx = vind2bind ( shape , strides , offset , order , 0 , 'throw' ) ;
291
+ t . strictEqual ( idx , 0 , 'returns expected value' ) ;
292
+
293
+ idx = vind2bind ( shape , strides , offset , order , 1 , 'throw' ) ;
294
+ t . strictEqual ( idx , 2 , 'returns expected value' ) ;
295
+
296
+ idx = vind2bind ( shape , strides , offset , order , 2 , 'throw' ) ;
297
+ t . strictEqual ( idx , 1 , 'returns expected value' ) ;
298
+
299
+ idx = vind2bind ( shape , strides , offset , order , 3 , 'throw' ) ;
300
+ t . strictEqual ( idx , 3 , 'returns expected value' ) ;
301
+
302
+ t . end ( ) ;
303
+ } ) ;
304
+
251
305
tape ( 'if the `mode` is `throw`, the function throws if provided a linear index which exceeds array dimensions (order=row-major)' , function test ( t ) {
252
306
var strides ;
253
307
var offset ;
0 commit comments