Initial commit — jibo-cli v3.0.7 with bundled node_modules

This commit is contained in:
pasketti
2026-04-05 18:40:18 -04:00
commit b2569b4ce4
10488 changed files with 1631271 additions and 0 deletions

65
node_modules/compute-hamming/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,65 @@
'use strict';
// MODULES //
var isArray = require( 'validate.io-array' ),
isString = require( 'validate.io-string' ),
isFunction = require( 'validate.io-function' );
// HAMMING DISTANCE //
/**
* FUNCTION: hamming( a, b, accessor )
* Computes the Hamming distance between two sequences.
*
* @param {String|Array} a - array or string sequence
* @param {String|Array} b - array or string sequence
* @param {Function} [accessor] - accessor function for accessing array values
* @returns {Number} Hamming distance
*/
function hamming( a, b, clbk ) {
var aType = isString( a ),
bType = isString( b ),
len,
d, i;
if ( !isArray( a ) && !aType ) {
throw new TypeError( 'hamming()::invalid input argument. Sequence must be either an array or a string. Value: `' + a + '`.' );
}
if ( !isArray( b ) && !bType ) {
throw new TypeError( 'hamming()::invalid input argument. Sequence must be either an array or a string. Value: `' + b + '`.' );
}
if ( aType !== bType ) {
throw new TypeError( 'hamming()::invalid input arguments. Sequences must be the same type; i.e., both strings or both arrays.' );
}
if ( arguments.length > 2 ) {
if ( !isFunction( clbk ) ) {
throw new TypeError( 'hamming()::invalid input argument. Accessor must be a function. Value: `' + clbk + '`.' );
}
}
len = a.length;
if ( len !== b.length ) {
throw new Error( 'hamming()::invalid input arguments. Sequences must be the same length.' );
}
d = 0;
if ( clbk ) {
for ( i = 0; i < len; i++ ) {
if ( clbk( a[i], i, 0 ) !== clbk( b[i], i, 1 ) ) {
d += 1;
}
}
} else {
for ( i = 0; i < len; i++ ) {
if ( a[ i ] !== b[ i ] ) {
d += 1;
}
}
}
return d;
} // end FUNCTION hamming()
// EXPORTS //
module.exports = hamming;