@@ -23,16 +23,16 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 98.9 % </ span >
26+ < span class ="strong "> 100 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 180/182 </ span >
28+ < span class ='fraction '> 187/187 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 97.14 % </ span >
33+ < span class ="strong "> 100 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 34/35 </ span >
35+ < span class ='fraction '> 34/34 </ span >
3636 </ div >
3737
3838
@@ -44,9 +44,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 98.9 % </ span >
47+ < span class ="strong "> 100 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 180/182 </ span >
49+ < span class ='fraction '> 187/187 </ span >
5050 </ div >
5151
5252
@@ -245,7 +245,12 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
245245< a name ='L180 '> </ a > < a href ='#L180 '> 180</ a >
246246< a name ='L181 '> </ a > < a href ='#L181 '> 181</ a >
247247< a name ='L182 '> </ a > < a href ='#L182 '> 182</ a >
248- < a name ='L183 '> </ a > < a href ='#L183 '> 183</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
248+ < a name ='L183 '> </ a > < a href ='#L183 '> 183</ a >
249+ < a name ='L184 '> </ a > < a href ='#L184 '> 184</ a >
250+ < a name ='L185 '> </ a > < a href ='#L185 '> 185</ a >
251+ < a name ='L186 '> </ a > < a href ='#L186 '> 186</ a >
252+ < a name ='L187 '> </ a > < a href ='#L187 '> 187</ a >
253+ < a name ='L188 '> </ a > < a href ='#L188 '> 188</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
249254< span class ="cline-any cline-yes "> 1x</ span >
250255< span class ="cline-any cline-yes "> 1x</ span >
251256< span class ="cline-any cline-yes "> 1x</ span >
@@ -327,63 +332,68 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
327332< span class ="cline-any cline-yes "> 1x</ span >
328333< span class ="cline-any cline-yes "> 1x</ span >
329334< span class ="cline-any cline-yes "> 1x</ span >
330- < span class ="cline-any cline-yes "> 95x</ span >
331- < span class ="cline-any cline-yes "> 95x</ span >
332- < span class ="cline-any cline-yes "> 95x</ span >
333- < span class ="cline-any cline-yes "> 95x</ span >
334- < span class ="cline-any cline-yes "> 95x</ span >
335- < span class ="cline-any cline-yes "> 95x</ span >
336- < span class ="cline-any cline-yes "> 95x</ span >
337- < span class ="cline-any cline-yes "> 95x</ span >
338- < span class ="cline-any cline-yes "> 95x</ span >
339- < span class ="cline-any cline-yes "> 95x</ span >
340- < span class ="cline-any cline-yes "> 95x</ span >
341- < span class ="cline-any cline-yes "> 95x</ span >
342- < span class ="cline-any cline-yes "> 95x</ span >
343- < span class ="cline-any cline-yes "> 20x</ span >
344- < span class ="cline-any cline-yes "> 20x</ span >
345- < span class ="cline-any cline-yes "> 75x</ span >
346- < span class ="cline-any cline-yes "> 75x</ span >
347- < span class ="cline-any cline-yes "> 75x</ span >
348- < span class ="cline-any cline-yes "> 75x</ span >
349- < span class ="cline-any cline-yes "> 75x</ span >
350- < span class ="cline-any cline-yes "> 75x</ span >
351- < span class ="cline-any cline-yes "> 75x</ span >
352- < span class ="cline-any cline-yes "> 75x</ span >
353- < span class ="cline-any cline-yes "> 75x</ span >
354- < span class ="cline-any cline-yes "> 75x</ span >
355- < span class ="cline-any cline-yes "> 95x</ span >
335+ < span class ="cline-any cline-yes "> 129x</ span >
336+ < span class ="cline-any cline-yes "> 129x</ span >
337+ < span class ="cline-any cline-yes "> 129x</ span >
338+ < span class ="cline-any cline-yes "> 129x</ span >
339+ < span class ="cline-any cline-yes "> 129x</ span >
340+ < span class ="cline-any cline-yes "> 129x</ span >
341+ < span class ="cline-any cline-yes "> 129x</ span >
342+ < span class ="cline-any cline-yes "> 129x</ span >
343+ < span class ="cline-any cline-yes "> 129x</ span >
344+ < span class ="cline-any cline-yes "> 129x</ span >
345+ < span class ="cline-any cline-yes "> 129x</ span >
346+ < span class ="cline-any cline-yes "> 129x</ span >
347+ < span class ="cline-any cline-yes "> 129x</ span >
348+ < span class ="cline-any cline-yes "> 40x</ span >
349+ < span class ="cline-any cline-yes "> 40x</ span >
350+ < span class ="cline-any cline-yes "> 89x</ span >
351+ < span class ="cline-any cline-yes "> 89x</ span >
352+ < span class ="cline-any cline-yes "> 89x</ span >
353+ < span class ="cline-any cline-yes "> 89x</ span >
354+ < span class ="cline-any cline-yes "> 89x</ span >
355+ < span class ="cline-any cline-yes "> 89x</ span >
356+ < span class ="cline-any cline-yes "> 89x</ span >
357+ < span class ="cline-any cline-yes "> 89x</ span >
358+ < span class ="cline-any cline-yes "> 89x</ span >
359+ < span class ="cline-any cline-yes "> 89x</ span >
360+ < span class ="cline-any cline-yes "> 89x</ span >
361+ < span class ="cline-any cline-yes "> 129x</ span >
362+ < span class ="cline-any cline-yes "> 8x</ span >
356363< span class ="cline-any cline-yes "> 8x</ span >
357- < span class ="cline-any cline-yes "> 95x</ span >
364+ < span class ="cline-any cline-yes "> 81x</ span >
365+ < span class ="cline-any cline-yes "> 81x</ span >
358366< span class ="cline-any cline-yes "> 65x</ span >
359- < span class ="cline-any cline-yes "> 2x</ span >
360- < span class ="cline-any cline-yes "> 2x</ span >
361367< span class ="cline-any cline-yes "> 65x</ span >
362- < span class ="cline-any cline-yes "> 63x</ span >
363- < span class ="cline-any cline-yes "> 7x</ span >
364- < span class ="cline-any cline-yes "> 7x</ span >
365- < span class ="cline-any cline-yes "> 56x</ span >
366- < span class ="cline-any cline-yes "> 56x</ span >
367- < span class ="cline-any cline-yes "> 56x</ span >
368- < span class ="cline-any cline-yes "> 67x</ span >
369- < span class ="cline-any cline-yes "> 2x</ span >
370- < span class ="cline-any cline-no "> </ span >
371- < span class ="cline-any cline-no "> </ span >
372368< span class ="cline-any cline-yes "> 2x</ span >
373369< span class ="cline-any cline-yes "> 2x</ span >
374370< span class ="cline-any cline-yes "> 2x</ span >
375- < span class ="cline-any cline-yes "> 2x </ span >
376- < span class ="cline-any cline-yes "> 95x </ span >
377- < span class ="cline-any cline-yes "> 7x </ span >
378- < span class ="cline-any cline-yes "> 7x </ span >
379- < span class ="cline-any cline-yes "> 95x </ span >
380- < span class ="cline-any cline-yes "> 51x </ span >
381- < span class ="cline-any cline-yes "> 26x </ span >
382- < span class ="cline-any cline-yes "> 10x </ span >
383- < span class ="cline-any cline-yes "> 10x </ span >
371+ < span class ="cline-any cline-yes "> 63x </ span >
372+ < span class ="cline-any cline-yes "> 63x </ span >
373+ < span class ="cline-any cline-yes "> 63x </ span >
374+ < span class ="cline-any cline-yes "> 63x </ span >
375+ < span class ="cline-any cline-yes "> 63x </ span >
376+ < span class ="cline-any cline-yes "> 65x </ span >
377+ < span class ="cline-any cline-yes "> 16x </ span >
378+ < span class ="cline-any cline-yes "> 16x </ span >
379+ < span class ="cline-any cline-yes "> 16x </ span >
384380< span class ="cline-any cline-yes "> 16x</ span >
385381< span class ="cline-any cline-yes "> 16x</ span >
386- < span class ="cline-any cline-yes "> 51x</ span >
382+ < span class ="cline-any cline-yes "> 16x</ span >
383+ < span class ="cline-any cline-yes "> 129x</ span >
384+ < span class ="cline-any cline-yes "> 14x</ span >
385+ < span class ="cline-any cline-yes "> 14x</ span >
386+ < span class ="cline-any cline-yes "> 129x</ span >
387+ < span class ="cline-any cline-yes "> 65x</ span >
388+ < span class ="cline-any cline-yes "> 14x</ span >
389+ < span class ="cline-any cline-yes "> 14x</ span >
390+ < span class ="cline-any cline-yes "> 65x</ span >
391+ < span class ="cline-any cline-yes "> 24x</ span >
392+ < span class ="cline-any cline-yes "> 10x</ span >
393+ < span class ="cline-any cline-yes "> 10x</ span >
394+ < span class ="cline-any cline-yes "> 14x</ span >
395+ < span class ="cline-any cline-yes "> 14x</ span >
396+ < span class ="cline-any cline-yes "> 65x</ span >
387397< span class ="cline-any cline-yes "> 33x</ span >
388398< span class ="cline-any cline-yes "> 8x</ span >
389399< span class ="cline-any cline-yes "> 8x</ span >
@@ -407,21 +417,21 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
407417< span class ="cline-any cline-yes "> 9x</ span >
408418< span class ="cline-any cline-yes "> 9x</ span >
409419< span class ="cline-any cline-yes "> 33x</ span >
410- < span class ="cline-any cline-yes "> 51x </ span >
420+ < span class ="cline-any cline-yes "> 65x </ span >
411421< span class ="cline-any cline-yes "> 42x</ span >
412422< span class ="cline-any cline-yes "> 42x</ span >
413423< span class ="cline-any cline-yes "> 42x</ span >
414424< span class ="cline-any cline-yes "> 42x</ span >
415425< span class ="cline-any cline-yes "> 42x</ span >
416426< span class ="cline-any cline-yes "> 42x</ span >
417427< span class ="cline-any cline-yes "> 42x</ span >
418- < span class ="cline-any cline-yes "> 95x </ span >
419- < span class ="cline-any cline-yes "> 95x </ span >
420- < span class ="cline-any cline-yes "> 95x </ span >
421- < span class ="cline-any cline-yes "> 95x </ span >
422- < span class ="cline-any cline-yes "> 95x </ span >
423- < span class ="cline-any cline-yes "> 95x </ span >
424- < span class ="cline-any cline-yes "> 95x </ span >
428+ < span class ="cline-any cline-yes "> 129x </ span >
429+ < span class ="cline-any cline-yes "> 129x </ span >
430+ < span class ="cline-any cline-yes "> 129x </ span >
431+ < span class ="cline-any cline-yes "> 129x </ span >
432+ < span class ="cline-any cline-yes "> 129x </ span >
433+ < span class ="cline-any cline-yes "> 129x </ span >
434+ < span class ="cline-any cline-yes "> 129x </ span >
425435< span class ="cline-any cline-yes "> 1x</ span >
426436< span class ="cline-any cline-yes "> 1x</ span >
427437< span class ="cline-any cline-yes "> 1x</ span >
@@ -485,7 +495,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
485495* @param {NonNegativeInteger} [options.depth] - maximum number of dimensions to flatten
486496* @param {string} [options.order='row-major'] - order in which input ndarray elements should be flattened
487497* @param {Function} fcn - callback function
488- * @param {*} thisArg - callback execution context
498+ * @param {*} [ thisArg] - callback execution context
489499* @throws {TypeError} first argument must be an ndarray-like object
490500* @throws {TypeError} options argument must be an object
491501* @throws {TypeError} callback argument must be a function
@@ -534,23 +544,25 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
534544 'order': ROW_MAJOR // by default, flatten in lexicographic order (i.e., trailing dimensions first; e.g., if `x` is a matrix, flatten row-by-row)
535545 };
536546
537- if ( nargs <= 2 ) { // Case: flattenBy( x, fcn )
547+ // Case: flattenBy( x, fcn )
548+ if ( nargs <= 2 ) {
538549 cb = options;
539- } else if ( nargs <= 3 ) {
540- if ( isFunction( options ) ) { // Case: flattenBy( x, fcn, thisArg )
550+ }
551+ // Case: flattenBy( x, ???, ??? )
552+ else if ( nargs === 3 ) {
553+ // Case: flattenBy( x, fcn, thisArg )
554+ if ( isFunction( options ) ) {
541555 cb = options;
542556 ctx = fcn;
543- } else { // Case: flattenBy( x, options, fcn )
544- if ( !isPlainObject( options ) ) {
545- throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
546- }
557+ }
558+ // Case: flattenBy( x, options, fcn )
559+ else {
547560 hasOpts = true;
548561 cb = fcn;
549562 }
550- } else { // Case: flattenBy( x, options, fcn, thisArg )
551- if ( !isPlainObject( options ) ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
552- < span class ="cstat-no " title ="statement not covered " > throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );</ span >
553- < span class ="cstat-no " title ="statement not covered " > }</ span >
563+ }
564+ // Case: flattenBy( x, options, fcn, thisArg )
565+ else {
554566 hasOpts = true;
555567 cb = fcn;
556568 ctx = thisArg;
@@ -559,6 +571,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
559571 throw new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', cb ) );
560572 }
561573 if ( hasOpts ) {
574+ if ( !isPlainObject( options ) ) {
575+ throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
576+ }
562577 if ( hasOwnProp( options, 'depth' ) ) {
563578 if ( !isNonNegativeInteger( options.depth ) ) {
564579 throw new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', options.depth ) );
@@ -616,7 +631,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
616631 < div class ='footer quiet pad2 space-top1 center small '>
617632 Code coverage generated by
618633 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
619- at 2025-09-16T18:32:02.430Z
634+ at 2025-09-17T07:11:09.373Z
620635 </ div >
621636 < script src ="../../../prettify.js "> </ script >
622637 < script >
0 commit comments