From 6e73c7bc9d254b5ee4a95d9dd4e504d0c53888c0 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 1 Nov 2023 02:54:00 +0000 Subject: [PATCH] Auto-generated commit --- .github/.keepalive | 1 + .github/workflows/publish.yml | 12 +- CONTRIBUTORS | 1 + test/dist/test.js | 730 +--------------------------------- 4 files changed, 16 insertions(+), 728 deletions(-) create mode 100644 .github/.keepalive diff --git a/.github/.keepalive b/.github/.keepalive new file mode 100644 index 0000000..90b0b24 --- /dev/null +++ b/.github/.keepalive @@ -0,0 +1 @@ +2023-11-01T02:53:56.560Z diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b17435b..0037bdb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -182,7 +182,11 @@ jobs: fi # Trim leading and trailing whitespace: dep=$(echo "$dep" | xargs) - version="^$(npm view $dep version)" + version="$(npm view $dep version)" + if [[ -z "$version" ]]; then + continue + fi + version="^$version" jq -r --arg dep "$dep" --arg version "$version" '.dependencies[$dep] = $version' package.json > package.json.tmp mv package.json.tmp package.json done @@ -192,7 +196,11 @@ jobs: fi # Trim leading and trailing whitespace: dep=$(echo "$dep" | xargs) - version="^$(npm view $dep version)" + version="$(npm view $dep version)" + if [[ -z "$version" ]]; then + continue + fi + version="^$version" jq -r --arg dep "$dep" --arg version "$version" '.devDependencies[$dep] = $version' package.json > package.json.tmp mv package.json.tmp package.json done diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 93c4bde..0dae4fe 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -37,3 +37,4 @@ Stephannie Jiménez Gacha Yernar Yergaziyev orimiles5 <97595296+orimiles5@users.noreply.github.com> rei2hu +Robert Gislason diff --git a/test/dist/test.js b/test/dist/test.js index b58e86c..a8a9c60 100644 --- a/test/dist/test.js +++ b/test/dist/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* Copyright (c) 2023 The Stdlib Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,735 +21,13 @@ // MODULES // var tape = require( 'tape' ); -var noop = require( '@stdlib/utils-noop' ); -var bifurcateIn = require( './../../dist' ); +var main = require( './../../dist' ); // TESTS // -tape( 'main export is a function', function test( t ) { +tape( 'main export is defined', function test( t ) { t.ok( true, __filename ); - t.strictEqual( typeof bifurcateIn, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function throws an error if not provided an object', function test( t ) { - var values; - var i; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - function noop() {} - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[i] ), TypeError, 'throws a type error when provided '+values[i] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - bifurcateIn( value, noop ); - }; - } -}); - -tape( 'the function throws an error if not provided a predicate function (no options)', function test( t ) { - var values; - var i; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - [], - /.*/, - new Date() - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[i] ), TypeError, 'throws a type error when provided '+values[i] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var obj = { - 'a': 1, - 'b': 2, - 'c': 3 - }; - bifurcateIn( obj, value ); - }; - } -}); - -tape( 'the function throws an error if not provided a predicate function (options)', function test( t ) { - var values; - var i; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - [], - /.*/, - new Date() - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[i] ), TypeError, 'throws a type error when provided '+values[i] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var obj = { - 'a': 1, - 'b': 2, - 'c': 3 - }; - bifurcateIn( obj, {}, value ); - }; - } -}); - -tape( 'the function throws an error if provided an invalid options argument', function test( t ) { - var values; - var i; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - function noop() {}, - /.*/, - new Date() - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[i] ), TypeError, 'throws a type error when provided '+values[i] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var obj = { - 'a': 1, - 'b': 2, - 'c': 3 - }; - bifurcateIn( obj, value, noop ); - }; - } -}); - -tape( 'the function throws an error if provided an invalid option', function test( t ) { - var values; - var i; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - function noop() {}, - /.*/, - new Date() - ]; - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[i] ), TypeError, 'throws a type error when provided '+values[i] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var opts; - var obj; - - obj = { - 'a': 1, - 'b': 2, - 'c': 3 - }; - opts = { - 'returns': value - }; - bifurcateIn( obj, opts, noop ); - }; - } -}); - -tape( 'the function splits object values into two groups according to a predicate function', function test( t ) { - var expected; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - expected = [ - [ 'beep', 'boop', 'bar' ], - [ 'foo' ] - ]; - out = bifurcateIn( obj, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (inherited)', function test( t ) { - var expected; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - function Foo() { - this.a = 'beep'; - this.b = 'boop'; - this.c = 'foo'; - this.d = 'bar'; - return this; - } - - Foo.prototype = Object.create( null ); - Foo.prototype.e = 'bip'; - Foo.prototype.f = 'fu'; - - obj = new Foo(); - - expected = [ - [ 'beep', 'boop', 'bar', 'bip' ], - [ 'foo', 'fu' ] - ]; - out = bifurcateIn( obj, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (values)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - opts = { - 'returns': 'values' - }; - - expected = [ - [ 'beep', 'boop', 'bar' ], - [ 'foo' ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (values; inherited)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - function Foo() { - this.a = 'beep'; - this.b = 'boop'; - this.c = 'foo'; - this.d = 'bar'; - return this; - } - - Foo.prototype = Object.create( null ); - Foo.prototype.e = 'bip'; - Foo.prototype.f = 'fu'; - - obj = new Foo(); - - opts = { - 'returns': 'values' - }; - - expected = [ - [ 'beep', 'boop', 'bar', 'bip' ], - [ 'foo', 'fu' ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (keys)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - opts = { - 'returns': 'keys' - }; - - expected = [ - [ 'a', 'b', 'd' ], - [ 'c' ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (keys; inherited)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - function Foo() { - this.a = 'beep'; - this.b = 'boop'; - this.c = 'foo'; - this.d = 'bar'; - return this; - } - - Foo.prototype = Object.create( null ); - Foo.prototype.e = 'bip'; - Foo.prototype.f = 'fu'; - - obj = new Foo(); - - opts = { - 'returns': 'keys' - }; - - expected = [ - [ 'a', 'b', 'd', 'e' ], - [ 'c', 'f' ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function splits object values into two groups according to a predicate function (pairs)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - opts = { - 'returns': '*' - }; - - expected = [ - [ [ 'a', 'beep' ], [ 'b', 'boop' ], [ 'd', 'bar' ] ], - [ [ 'c', 'foo' ] ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort( sort ); - out[ 1 ].sort( sort ); - expected[ 0 ].sort( sort ); - expected[ 1 ].sort( sort ); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); - - function sort( a, b ) { - return a[ 0 ] < b[ 0 ]; - } -}); - -tape( 'the function splits object values into two groups according to a predicate function (pairs; inherited)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - function Foo() { - this.a = 'beep'; - this.b = 'boop'; - this.c = 'foo'; - this.d = 'bar'; - return this; - } - - Foo.prototype = Object.create( null ); - Foo.prototype.e = 'bip'; - Foo.prototype.f = 'fu'; - - obj = new Foo(); - - opts = { - 'returns': '*' - }; - - expected = [ - [ [ 'a', 'beep' ], [ 'b', 'boop' ], [ 'd', 'bar' ], [ 'e', 'bip' ] ], - [ [ 'c', 'foo' ], [ 'f', 'fu' ] ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort( sort ); - out[ 1 ].sort( sort ); - expected[ 0 ].sort( sort ); - expected[ 1 ].sort( sort ); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); - - function sort( a, b ) { - return a[ 0 ] < b[ 0 ]; - } -}); - -tape( 'the function splits object values into two groups according to a predicate function (array-like object)', function test( t ) { - var expected; - var opts; - var out; - var arr; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - arr = Object.create( null ); - arr.length = 4; - arr[ 0 ] = 'beep'; - arr[ 1 ] = 'boop'; - arr[ 2 ] = 'foo'; - arr[ 3 ] = 'bar'; - - opts = { - 'returns': 'values' - }; - - expected = [ - [ 'beep', 'boop', 'bar' ], - [ 'foo', 4 ] - ]; - out = bifurcateIn( arr, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'the function supports providing an execution context', function test( t ) { - var expected; - var opts; - var ctx; - var out; - var obj; - - function predicate( v ) { - this.count += 1; // eslint-disable-line no-invalid-this - return ( v[ 0 ] === 'b' ); - } - - ctx = { - 'count': 0 - }; - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - opts = { - 'thisArg': ctx - }; - expected = [ - [ 'beep', 'boop', 'bar' ], - [ 'foo' ] - ]; - out = bifurcateIn( obj, opts, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.strictEqual( ctx.count, 4, 'updates context' ); - - t.end(); -}); - -tape( 'the function invokes the predicate function with both the object value and the object key', function test( t ) { - var expected; - var out; - var obj; - - function predicate( v, k ) { - return ( parseInt( k, 10 ) < 2 ); - } - - obj = Object.create( null ); - obj[ 0 ] = 'beep'; - obj[ 1 ] = 'boop'; - obj[ 2 ] = 'foo'; - obj[ 3 ] = 'bar'; - - expected = [ - [ 'beep', 'boop' ], - [ 'foo', 'bar' ] - ]; - out = bifurcateIn( obj, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); - t.end(); -}); - -tape( 'if provided an empty object with no prototype, the function returns an empty array', function test( t ) { - var expected; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - expected = []; - - out = bifurcateIn( obj, predicate ); - - t.deepEqual( out, expected, 'returns expected results' ); - t.end(); -}); - -tape( 'if provided an empty object with no prototype, the function returns an empty array (values)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - expected = []; - - opts = { - 'returns': 'values' - }; - - out = bifurcateIn( obj, opts, predicate ); - - t.deepEqual( out, expected, 'returns expected results' ); - t.end(); -}); - -tape( 'if provided an empty object with no prototype, the function returns an empty array (keys)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - expected = []; - - opts = { - 'returns': 'keys' - }; - - out = bifurcateIn( obj, opts, predicate ); - - t.deepEqual( out, expected, 'returns expected results' ); - t.end(); -}); - -tape( 'if provided an empty object with no prototype, the function returns an empty array (pairs)', function test( t ) { - var expected; - var opts; - var out; - var obj; - - function predicate( v ) { - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - expected = []; - - opts = { - 'returns': '*' - }; - - out = bifurcateIn( obj, opts, predicate ); - - t.deepEqual( out, expected, 'returns expected results' ); - t.end(); -}); - -tape( 'the function does not account for dynamic addition and removal of object properties', function test( t ) { - var expected; - var out; - var obj; - - function predicate( v, k ) { - obj[ 'a'+k ] = 'bap'; - return v[ 0 ] === 'b'; - } - - obj = Object.create( null ); - obj.a = 'beep'; - obj.b = 'boop'; - obj.c = 'foo'; - obj.d = 'bar'; - - expected = [ - [ 'beep', 'boop', 'bar' ], - [ 'foo' ] - ]; - out = bifurcateIn( obj, predicate ); - - // To ensure stable comparison due to iteration order instability, we only want to test that the sets are the same, not the order... - out[ 0 ].sort(); - out[ 1 ].sort(); - expected[ 0 ].sort(); - expected[ 1 ].sort(); - - t.deepEqual( out, expected, 'returns expected groups' ); + t.strictEqual( main !== void 0, true, 'main export is defined' ); t.end(); });