Skip to content

Commit 206df90

Browse files
committed
test: add accessors tests
1 parent 9330d1d commit 206df90

2 files changed

Lines changed: 266 additions & 0 deletions

File tree

lib/node_modules/@stdlib/blas/ext/base/gindex-of-column/test/test.main.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
// MODULES //
2424

2525
var tape = require( 'tape' );
26+
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
2627
var gindexOfColumn = require( './../lib' );
2728

2829

@@ -195,3 +196,47 @@ tape( 'the function returns an invalid index if unable to find a search vector (
195196
t.strictEqual( out, -1, 'returns expected value' );
196197
t.end();
197198
});
199+
200+
tape( 'the function returns the index of the first column matching a search vector (row-major, accessors)', function test( t ) {
201+
var data;
202+
var out;
203+
204+
data = ROW_MAJOR_DATA;
205+
out = gindexOfColumn( data.order, data.M, data.N, toAccessorArray( data.A ), data.LDA, toAccessorArray( data.x ), data.strideX );
206+
207+
t.strictEqual( out, data.expected, 'returns expected value' );
208+
t.end();
209+
});
210+
211+
tape( 'the function returns the index of the first column matching a search vector (column-major, accessors)', function test( t ) {
212+
var data;
213+
var out;
214+
215+
data = COLUMN_MAJOR_DATA;
216+
out = gindexOfColumn( data.order, data.M, data.N, toAccessorArray( data.A ), data.LDA, toAccessorArray( data.x ), data.strideX );
217+
218+
t.strictEqual( out, data.expected, 'returns expected value' );
219+
t.end();
220+
});
221+
222+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, accessors)', function test( t ) {
223+
var data;
224+
var out;
225+
226+
data = ROW_MAJOR_NO_MATCH;
227+
out = gindexOfColumn( data.order, data.M, data.N, toAccessorArray( data.A ), data.LDA, toAccessorArray( data.x ), data.strideX );
228+
229+
t.strictEqual( out, -1, 'returns expected value' );
230+
t.end();
231+
});
232+
233+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, accessors)', function test( t ) {
234+
var data;
235+
var out;
236+
237+
data = COLUMN_MAJOR_NO_MATCH;
238+
out = gindexOfColumn( data.order, data.M, data.N, toAccessorArray( data.A ), data.LDA, toAccessorArray( data.x ), data.strideX );
239+
240+
t.strictEqual( out, -1, 'returns expected value' );
241+
t.end();
242+
});

lib/node_modules/@stdlib/blas/ext/base/gindex-of-column/test/test.ndarray.js

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
// MODULES //
2424

2525
var tape = require( 'tape' );
26+
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
2627
var gindexOfColumn = require( './../lib/ndarray.js' );
2728

2829

@@ -326,3 +327,223 @@ tape( 'the function returns an invalid index if unable to find a search vector (
326327
t.strictEqual( out, data.expected, 'returns expected value' );
327328
t.end();
328329
});
330+
331+
tape( 'the function returns the index of the first column matching a search vector (row-major, accessors)', function test( t ) {
332+
var data;
333+
var out;
334+
335+
data = ROW_MAJOR_DATA;
336+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
337+
338+
t.strictEqual( out, data.expected, 'returns expected value' );
339+
t.end();
340+
});
341+
342+
tape( 'the function returns the index of the first column matching a search vector (column-major, accessors)', function test( t ) {
343+
var data;
344+
var out;
345+
346+
data = COLUMN_MAJOR_DATA;
347+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
348+
349+
t.strictEqual( out, data.expected, 'returns expected value' );
350+
t.end();
351+
});
352+
353+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, accessors)', function test( t ) {
354+
var data;
355+
var out;
356+
357+
data = ROW_MAJOR_NO_MATCH;
358+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
359+
360+
t.strictEqual( out, data.expected, 'returns expected value' );
361+
t.end();
362+
});
363+
364+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, accessors)', function test( t ) {
365+
var data;
366+
var out;
367+
368+
data = COLUMN_MAJOR_NO_MATCH;
369+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
370+
371+
t.strictEqual( out, data.expected, 'returns expected value' );
372+
t.end();
373+
});
374+
375+
tape( 'the function returns the index of the first column matching a search vector (row-major, offsets, accessors)', function test( t ) {
376+
var data;
377+
var out;
378+
379+
data = OFFSET_ROW_MAJOR_DATA;
380+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
381+
382+
t.strictEqual( out, data.expected, 'returns expected value' );
383+
t.end();
384+
});
385+
386+
tape( 'the function returns the index of the first column matching a search vector (column-major, offsets, accessors)', function test( t ) {
387+
var data;
388+
var out;
389+
390+
data = OFFSET_COLUMN_MAJOR_DATA;
391+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
392+
393+
t.strictEqual( out, data.expected, 'returns expected value' );
394+
t.end();
395+
});
396+
397+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, offsets, accessors)', function test( t ) {
398+
var data;
399+
var out;
400+
401+
data = OFFSET_ROW_MAJOR_NO_MATCH;
402+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
403+
404+
t.strictEqual( out, data.expected, 'returns expected value' );
405+
t.end();
406+
});
407+
408+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, offsets, accessors)', function test( t ) {
409+
var data;
410+
var out;
411+
412+
data = OFFSET_COLUMN_MAJOR_NO_MATCH;
413+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
414+
415+
t.strictEqual( out, data.expected, 'returns expected value' );
416+
t.end();
417+
});
418+
419+
tape( 'the function returns the index of the first column matching a search vector (row-major, mixed strides, accessors)', function test( t ) {
420+
var data;
421+
var out;
422+
423+
data = MIXED_STRIDES_ROW_MAJOR_DATA;
424+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
425+
426+
t.strictEqual( out, data.expected, 'returns expected value' );
427+
t.end();
428+
});
429+
430+
tape( 'the function returns the index of the first column matching a search vector (column-major, mixed strides, accessors)', function test( t ) {
431+
var data;
432+
var out;
433+
434+
data = MIXED_STRIDES_COLUMN_MAJOR_DATA;
435+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
436+
437+
t.strictEqual( out, data.expected, 'returns expected value' );
438+
t.end();
439+
});
440+
441+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, mixed strides, accessors)', function test( t ) {
442+
var data;
443+
var out;
444+
445+
data = MIXED_STRIDES_ROW_MAJOR_NO_MATCH;
446+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
447+
448+
t.strictEqual( out, data.expected, 'returns expected value' );
449+
t.end();
450+
});
451+
452+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, mixed strides, accessors)', function test( t ) {
453+
var data;
454+
var out;
455+
456+
data = MIXED_STRIDES_COLUMN_MAJOR_NO_MATCH;
457+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
458+
459+
t.strictEqual( out, data.expected, 'returns expected value' );
460+
t.end();
461+
});
462+
463+
tape( 'the function returns the index of the first column matching a search vector (row-major, negative strides, accessors)', function test( t ) {
464+
var data;
465+
var out;
466+
467+
data = NEGATIVE_STRIDES_ROW_MAJOR_DATA;
468+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
469+
470+
t.strictEqual( out, data.expected, 'returns expected value' );
471+
t.end();
472+
});
473+
474+
tape( 'the function returns the index of the first column matching a search vector (column-major, negative strides, accessors)', function test( t ) {
475+
var data;
476+
var out;
477+
478+
data = NEGATIVE_STRIDES_COLUMN_MAJOR_DATA;
479+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
480+
481+
t.strictEqual( out, data.expected, 'returns expected value' );
482+
t.end();
483+
});
484+
485+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, negative strides, accessors)', function test( t ) {
486+
var data;
487+
var out;
488+
489+
data = NEGATIVE_STRIDES_ROW_MAJOR_NO_MATCH;
490+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
491+
492+
t.strictEqual( out, data.expected, 'returns expected value' );
493+
t.end();
494+
});
495+
496+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, negative strides, accessors)', function test( t ) {
497+
var data;
498+
var out;
499+
500+
data = NEGATIVE_STRIDES_COLUMN_MAJOR_NO_MATCH;
501+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
502+
503+
t.strictEqual( out, data.expected, 'returns expected value' );
504+
t.end();
505+
});
506+
507+
tape( 'the function returns the index of the first column matching a search vector (row-major, large strides, accessors)', function test( t ) {
508+
var data;
509+
var out;
510+
511+
data = LARGE_STRIDES_ROW_MAJOR_DATA;
512+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
513+
514+
t.strictEqual( out, data.expected, 'returns expected value' );
515+
t.end();
516+
});
517+
518+
tape( 'the function returns the index of the first column matching a search vector (column-major, large strides, accessors)', function test( t ) {
519+
var data;
520+
var out;
521+
522+
data = LARGE_STRIDES_COLUMN_MAJOR_DATA;
523+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
524+
525+
t.strictEqual( out, data.expected, 'returns expected value' );
526+
t.end();
527+
});
528+
529+
tape( 'the function returns an invalid index if unable to find a search vector (row-major, large strides, accessors)', function test( t ) {
530+
var data;
531+
var out;
532+
533+
data = LARGE_STRIDES_ROW_MAJOR_NO_MATCH;
534+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
535+
536+
t.strictEqual( out, data.expected, 'returns expected value' );
537+
t.end();
538+
});
539+
540+
tape( 'the function returns an invalid index if unable to find a search vector (column-major, large strides, accessors)', function test( t ) {
541+
var data;
542+
var out;
543+
544+
data = LARGE_STRIDES_COLUMN_MAJOR_NO_MATCH;
545+
out = gindexOfColumn( data.M, data.N, toAccessorArray( data.A ), data.strideA1, data.strideA2, data.offsetA, toAccessorArray( data.x ), data.strideX, data.offsetX );
546+
547+
t.strictEqual( out, data.expected, 'returns expected value' );
548+
t.end();
549+
});

0 commit comments

Comments
 (0)