diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index b3f09030..a2eea525 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-versions: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
+ php-versions: ['7.3', '7.4', '8.0', '8.1']
fail-fast: false
steps:
- uses: actions/checkout@v1
diff --git a/.idea/functional-php.iml b/.idea/functional-php.iml
index b36319d1..055394fe 100644
--- a/.idea/functional-php.iml
+++ b/.idea/functional-php.iml
@@ -48,7 +48,6 @@
-
@@ -60,6 +59,13 @@
+
+
+
+
+
+
+
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index ad4d01cb..44d6d234 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -8,6 +8,7 @@
+
\ No newline at end of file
diff --git a/.idea/php.xml b/.idea/php.xml
index df9b1344..39d50bdb 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -54,7 +54,6 @@
-
@@ -66,9 +65,16 @@
+
+
+
+
+
+
+
-
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b13db12e..3e0102df 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,8 +2,61 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -61,7 +114,6 @@
-
@@ -73,6 +125,13 @@
+
+
+
+
+
+
+
@@ -84,13 +143,23 @@
+
-
+
+
+
+
+
+
+
+
+
+
@@ -100,7 +169,7 @@
1608624110697
-
+
@@ -118,4 +187,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
new file mode 100644
index 00000000..c7ff8296
--- /dev/null
+++ b/.phpunit.result.cache
@@ -0,0 +1 @@
+C:37:"PHPUnit\Runner\DefaultTestResultCache":35560:{a:2:{s:7:"defects";a:26:{s:34:"Functional\Tests\AverageTest::test";i:4;s:36:"Functional\Tests\EachTest::testArray";i:4;s:39:"Functional\Tests\EachTest::testIterator";i:4;s:35:"Functional\Tests\EachTest::testHash";i:4;s:43:"Functional\Tests\EachTest::testHashIterator";i:4;s:73:"Functional\Tests\FunctionalTest::testAllDefinedConstantsAreValidCallables";i:5;s:50:"Functional\Tests\MatchingTest::testDeprecatedAlias";i:3;s:54:"Functional\Tests\MemoizeTest::testMemoizeWithArguments";i:6;s:54:"Functional\Tests\MemoizeTest::testMemoizeWithCustomKey";i:6;s:53:"Functional\Tests\PollTest::testPollRetriesIfNotTruthy";i:4;s:64:"Functional\Tests\PollTest::testPollRetriesAndGivesUpAfterTimeout";i:3;s:61:"Functional\Tests\PollTest::testWithEmptyDelayCallsAtLeastOnce";i:6;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #0";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #1";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #2";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #3";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #4";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #5";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #6";i:4;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #7";i:4;s:48:"Functional\Tests\RetryTest::testRetriedIfItFails";i:4;s:68:"Functional\Tests\RetryTest::testThrowsExceptionIfRetryCountIsReached";i:6;s:59:"Functional\Tests\RetryTest::testRetryWithEmptyDelaySequence";i:6;s:63:"Functional\Tests\RetryTest::testUsesDelayTraversableForSleeping";i:6;s:57:"Functional\Tests\RetryTest::testDelayerSmallerThanRetries";i:6;s:32:"Functional\Tests\RatioTest::test";i:4;}s:5:"times";a:471:{s:30:"Functional\Tests\AryTest::test";d:0.002;s:39:"Functional\Tests\AryTest::testException";d:0;s:34:"Functional\Tests\AverageTest::test";d:0;s:50:"Functional\Tests\AverageTest::testPassNoCollection";d:0;s:34:"Functional\Tests\ButLastTest::test";d:0;s:50:"Functional\Tests\ButLastTest::testPassNoCollection";d:0;s:52:"Functional\Tests\CaptureTest::testCaptureReturnValue";d:0;s:59:"Functional\Tests\CompareObjectHashOnTest::testCompareValues";d:0;s:64:"Functional\Tests\CompareObjectHashOnTest::testCompareWithReducer";d:0;s:49:"Functional\Tests\CompareOnTest::testCompareValues";d:0;s:54:"Functional\Tests\CompareOnTest::testCompareWithReducer";d:0;s:34:"Functional\Tests\ComposeTest::test";d:0;s:49:"Functional\Tests\ComposeTest::testPassNoFunctions";d:0;s:33:"Functional\Tests\ConcatTest::test";d:0;s:49:"Functional\Tests\ConstFunctionTest::testWithValue";d:0;s:35:"Functional\Tests\ContainsTest::test";d:0;s:51:"Functional\Tests\ContainsTest::testPassNoCollection";d:0;s:53:"Functional\Tests\ConvergeTest::testCallablesAsStrings";d:0;s:55:"Functional\Tests\ConvergeTest::testCallablesAsAnonymous";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #0";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #1";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #2";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #3";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #4";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #5";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #6";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #7";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #8";d:0;s:63:"Functional\Tests\CurryNTest::testCallbackTypes with data set #9";d:0;s:64:"Functional\Tests\CurryNTest::testCallbackTypes with data set #10";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #0";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #1";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #2";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #3";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #4";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #5";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #6";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #7";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #8";d:0;s:62:"Functional\Tests\CurryTest::testCallbackTypes with data set #9";d:0;s:63:"Functional\Tests\CurryTest::testCallbackTypes with data set #10";d:0;s:37:"Functional\Tests\DifferenceTest::test";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #0";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #1";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #2";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #3";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #4";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #5";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #6";d:0;s:83:"Functional\Tests\DifferenceTest::testElementsOfWrongTypeAreIgnored with data set #7";d:0;s:53:"Functional\Tests\DifferenceTest::testPassNoCollection";d:0;s:31:"Functional\Tests\DropTest::test";d:0;s:72:"Functional\Tests\DropTest::testExceptionIsThrownInArray with data set #0";d:0;s:72:"Functional\Tests\DropTest::testExceptionIsThrownInArray with data set #1";d:0;s:71:"Functional\Tests\DropTest::testExceptionIsThrownInHash with data set #0";d:0;s:71:"Functional\Tests\DropTest::testExceptionIsThrownInHash with data set #1";d:0;s:75:"Functional\Tests\DropTest::testExceptionIsThrownInIterator with data set #0";d:0;s:75:"Functional\Tests\DropTest::testExceptionIsThrownInIterator with data set #1";d:0;s:79:"Functional\Tests\DropTest::testExceptionIsThrownInHashIterator with data set #0";d:0;s:79:"Functional\Tests\DropTest::testExceptionIsThrownInHashIterator with data set #1";d:0;s:64:"Functional\Tests\DropTest::testPassNoCollection with data set #0";d:0;s:64:"Functional\Tests\DropTest::testPassNoCollection with data set #1";d:0;s:63:"Functional\Tests\DropTest::testPassNonCallable with data set #0";d:0;s:63:"Functional\Tests\DropTest::testPassNonCallable with data set #1";d:0;s:36:"Functional\Tests\EachTest::testArray";d:0.005;s:39:"Functional\Tests\EachTest::testIterator";d:0;s:35:"Functional\Tests\EachTest::testHash";d:0;s:43:"Functional\Tests\EachTest::testHashIterator";d:0;s:55:"Functional\Tests\EachTest::testExceptionIsThrownInArray";d:0;s:60:"Functional\Tests\EachTest::testExceptionIsThrownInCollection";d:0;s:46:"Functional\Tests\EachTest::testPassNonCallable";d:0;s:47:"Functional\Tests\EachTest::testPassNoCollection";d:0;s:37:"Functional\Tests\EqualTest::testEqual";d:0;s:67:"Functional\Tests\ErrorToExceptionTest::testErrorIsThrownAsException";d:0;s:60:"Functional\Tests\ErrorToExceptionTest::testFunctionIsWrapped";d:0;s:76:"Functional\Tests\ErrorToExceptionTest::testExceptionsAreHandledTransparently";d:0;s:67:"Functional\Tests\ErrorToExceptionTest::testErrorHandlerNestingWorks";d:0;s:32:"Functional\Tests\EveryTest::test";d:0;s:47:"Functional\Tests\EveryTest::testPassNonCallable";d:0;s:48:"Functional\Tests\EveryTest::testPassNoCollection";d:0;s:46:"Functional\Tests\EveryTest::testPassNoCallable";d:0;s:56:"Functional\Tests\EveryTest::testExceptionIsThrownInArray";d:0;s:61:"Functional\Tests\EveryTest::testExceptionIsThrownInCollection";d:0;s:98:"Functional\Exceptions\InvalidArgumentExceptionTest::testCallbackExceptionWithUndefinedStaticMethod";d:0;s:94:"Functional\Exceptions\InvalidArgumentExceptionTest::testCallbackExceptionWithUndefinedFunction";d:0;s:92:"Functional\Exceptions\InvalidArgumentExceptionTest::testCallbackExceptionWithUndefinedMethod";d:0;s:96:"Functional\Exceptions\InvalidArgumentExceptionTest::testCallbackExceptionWithIncorrectArrayIndex";d:0;s:83:"Functional\Exceptions\InvalidArgumentExceptionTest::testCallbackExceptionWithObject";d:0;s:87:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfStringIsPassedAsList";d:0;s:87:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfObjectIsPassedAsList";d:0;s:82:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertArrayAccessValidCase";d:0;s:83:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertArrayAccessWithString";d:0;s:90:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertArrayAccessWithStandardClass";d:0;s:84:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfInvalidMethodName";d:0;s:86:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfInvalidPropertyName";d:0;s:92:"Functional\Exceptions\InvalidArgumentExceptionTest::testNoExceptionThrownWithPositiveInteger";d:0;s:106:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfNegativeIntegerInsteadOfPositiveInteger";d:0;s:97:"Functional\Exceptions\InvalidArgumentExceptionTest::testExceptionIfStringInsteadOfPositiveInteger";d:0;s:85:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertIntegerAccessWithString";d:0;s:85:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertIntegerAccessWithObject";d:0;s:85:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertBooleanAccessWithString";d:0;s:85:"Functional\Exceptions\InvalidArgumentExceptionTest::testAssertBooleanAccessWithObject";d:0;s:32:"Functional\Tests\FalseTest::test";d:0;s:48:"Functional\Tests\FalseTest::testPassNoCollection";d:0;s:32:"Functional\Tests\FalsyTest::test";d:0;s:48:"Functional\Tests\FalsyTest::testPassNoCollection";d:0;s:39:"Functional\Tests\FirstIndexOfTest::test";d:0;s:76:"Functional\Tests\FirstIndexOfTest::testIfValueCouldNotBeFoundFalseIsReturned";d:0;s:51:"Functional\Tests\FirstIndexOfTest::testPassCallback";d:0;s:55:"Functional\Tests\FirstIndexOfTest::testPassNoCollection";d:0;s:49:"Functional\Tests\FirstTest::test with data set #0";d:0;s:49:"Functional\Tests\FirstTest::test with data set #1";d:0;s:64:"Functional\Tests\FirstTest::testWithoutCallback with data set #0";d:0;s:64:"Functional\Tests\FirstTest::testWithoutCallback with data set #1";d:0;s:64:"Functional\Tests\FirstTest::testPassNonCallable with data set #0";d:0;s:64:"Functional\Tests\FirstTest::testPassNonCallable with data set #1";d:0;s:73:"Functional\Tests\FirstTest::testExceptionIsThrownInArray with data set #0";d:0;s:73:"Functional\Tests\FirstTest::testExceptionIsThrownInArray with data set #1";d:0;s:78:"Functional\Tests\FirstTest::testExceptionIsThrownInCollection with data set #0";d:0;s:78:"Functional\Tests\FirstTest::testExceptionIsThrownInCollection with data set #1";d:0;s:65:"Functional\Tests\FirstTest::testPassNoCollection with data set #0";d:0;s:65:"Functional\Tests\FirstTest::testPassNoCollection with data set #1";d:0;s:38:"Functional\Tests\FlatMapTest::testList";d:0;s:46:"Functional\Tests\FlatMapTest::testListIterator";d:0;s:38:"Functional\Tests\FlatMapTest::testHash";d:0;s:46:"Functional\Tests\FlatMapTest::testHashIterator";d:0;s:50:"Functional\Tests\FlatMapTest::testPassNoCollection";d:0;s:49:"Functional\Tests\FlatMapTest::testPassNonCallable";d:0;s:34:"Functional\Tests\FlattenTest::test";d:0;s:50:"Functional\Tests\FlattenTest::testPassNoCollection";d:0;s:50:"Functional\Tests\FlipTest::testFlippedMergeStrings";d:0;s:46:"Functional\Tests\FlipTest::testFlippedSubtract";d:0;s:44:"Functional\Tests\FlipTest::testFlippedFilter";d:0;s:40:"Functional\Tests\FlipTest::testFlippedId";d:0;s:73:"Functional\Tests\FunctionalTest::testAllDefinedConstantsAreValidCallables";d:0.001;s:78:"Functional\Tests\FunctionalTest::testShouldHaveDefinedConstantsForAllFunctions";d:0.001;s:73:"Functional\Tests\GreaterThanOrEqualTest::testGreaterThanOrEqualComparison";d:0;s:59:"Functional\Tests\GreaterThanTest::testGreaterThanComparison";d:0;s:32:"Functional\Tests\GroupTest::test";d:0;s:79:"Functional\Tests\GroupTest::testExceptionIsThrownWhenCallbacksReturnsInvalidKey";d:0;s:56:"Functional\Tests\GroupTest::testExceptionIsThrownInArray";d:0;s:55:"Functional\Tests\GroupTest::testExceptionIsThrownInHash";d:0;s:59:"Functional\Tests\GroupTest::testExceptionIsThrownInIterator";d:0;s:63:"Functional\Tests\GroupTest::testExceptionIsThrownInHashIterator";d:0;s:48:"Functional\Tests\GroupTest::testPassNoCollection";d:0;s:47:"Functional\Tests\GroupTest::testPassNonCallable";d:0;s:38:"Functional\Tests\IdTest::testWithValue";d:0;s:55:"Functional\Tests\IdenticalTest::testIdenticalComparison";d:0;s:39:"Functional\Tests\IfElseTest::testIfElse";d:0;s:36:"Functional\Tests\IndexesOfTest::test";d:0;s:78:"Functional\Tests\IndexesOfTest::testIfValueCouldNotBeFoundEmptyArrayIsReturned";d:0;s:52:"Functional\Tests\IndexesOfTest::testPassNoCollection";d:0;s:38:"Functional\Tests\IntersperseTest::test";d:0;s:53:"Functional\Tests\IntersperseTest::testEmptyCollection";d:0;s:58:"Functional\Tests\IntersperseTest::testIntersperseWithArray";d:0;s:54:"Functional\Tests\IntersperseTest::testPassNoCollection";d:0;s:44:"Functional\Tests\InvokeFirstTest::testSimple";d:0;s:54:"Functional\Tests\InvokeFirstTest::testSkipNonCallables";d:0;s:54:"Functional\Tests\InvokeFirstTest::testPassNoCollection";d:0;s:56:"Functional\Tests\InvokeFirstTest::testPassNoPropertyName";d:0;s:47:"Functional\Tests\InvokeFirstTest::testException";d:0;s:35:"Functional\Tests\InvokeIfTest::test";d:0;s:57:"Functional\Tests\InvokeIfTest::testReturnDefaultValueUsed";d:0;s:43:"Functional\Tests\InvokeLastTest::testSimple";d:0;s:53:"Functional\Tests\InvokeLastTest::testSkipNonCallables";d:0;s:53:"Functional\Tests\InvokeLastTest::testPassNoCollection";d:0;s:55:"Functional\Tests\InvokeLastTest::testPassNoPropertyName";d:0;s:46:"Functional\Tests\InvokeLastTest::testException";d:0;s:33:"Functional\Tests\InvokeTest::test";d:0;s:49:"Functional\Tests\InvokeTest::testPassNoCollection";d:0;s:51:"Functional\Tests\InvokeTest::testPassNoPropertyName";d:0;s:42:"Functional\Tests\InvokeTest::testException";d:0;s:57:"Functional\Tests\InvokerTest::testInvokerWithoutArguments";d:0;s:54:"Functional\Tests\InvokerTest::testInvokerWithArguments";d:0;s:46:"Functional\Tests\InvokerTest::testPassNoString";d:0;s:47:"Functional\Tests\InvokerTest::testInvalidMethod";d:0;s:38:"Functional\Tests\LastIndexOfTest::test";d:0;s:75:"Functional\Tests\LastIndexOfTest::testIfValueCouldNotBeFoundFalseIsReturned";d:0;s:50:"Functional\Tests\LastIndexOfTest::testPassCallback";d:0;s:54:"Functional\Tests\LastIndexOfTest::testPassNoCollection";d:0;s:31:"Functional\Tests\LastTest::test";d:0;s:46:"Functional\Tests\LastTest::testWithoutCallback";d:0;s:46:"Functional\Tests\LastTest::testPassNonCallable";d:0;s:55:"Functional\Tests\LastTest::testExceptionIsThrownInArray";d:0;s:60:"Functional\Tests\LastTest::testExceptionIsThrownInCollection";d:0;s:47:"Functional\Tests\LastTest::testPassNoCollection";d:0;s:67:"Functional\Tests\LessThanOrEqualTest::testLessThanOrEqualComparison";d:0;s:53:"Functional\Tests\LessThanTest::testLessThanComparison";d:0;s:77:"Functional\Tests\LexicographicCompareTest::testLexicographicCompareComparison";d:0;s:30:"Functional\Tests\MapTest::test";d:0;s:54:"Functional\Tests\MapTest::testExceptionIsThrownInArray";d:0;s:53:"Functional\Tests\MapTest::testExceptionIsThrownInHash";d:0;s:57:"Functional\Tests\MapTest::testExceptionIsThrownInIterator";d:0;s:61:"Functional\Tests\MapTest::testExceptionIsThrownInHashIterator";d:0;s:46:"Functional\Tests\MapTest::testPassNoCollection";d:0;s:45:"Functional\Tests\MapTest::testPassNonCallable";d:0;s:43:"Functional\Tests\MatchingTest::testMatching";d:0.001;s:50:"Functional\Tests\MatchingTest::testNothingMatching";d:0;s:59:"Functional\Tests\MatchingTest::testMatchingConditionIsArray";d:0;s:58:"Functional\Tests\MatchingTest::testMatchingConditionLength";d:0;s:61:"Functional\Tests\MatchingTest::testMatchingConditionCallables";d:0;s:50:"Functional\Tests\MatchingTest::testDeprecatedAlias";d:0;s:56:"Functional\Tests\MaximumTest::testExtractingMaximumValue";d:0;s:49:"Functional\Tests\MaximumTest::testSpecialCaseNull";d:0;s:68:"Functional\Tests\MaximumTest::testSpecialCaseSameValueDifferentTypes";d:0;s:50:"Functional\Tests\MaximumTest::testPassNoCollection";d:0;s:57:"Functional\Tests\MemoizeTest::testMemoizeSimpleObjectCall";d:0.001;s:53:"Functional\Tests\MemoizeTest::testMemoizeFunctionCall";d:0;s:57:"Functional\Tests\MemoizeTest::testMemoizeStaticMethodCall";d:0;s:52:"Functional\Tests\MemoizeTest::testMemoizeClosureCall";d:0;s:54:"Functional\Tests\MemoizeTest::testMemoizeWithArguments";d:0;s:54:"Functional\Tests\MemoizeTest::testMemoizeWithCustomKey";d:0;s:70:"Functional\Tests\MemoizeTest::testResultIsNotStoredIfExceptionIsThrown";d:0;s:62:"Functional\Tests\MemoizeTest::testResetByPassingNullAsCallable";d:0;s:48:"Functional\Tests\MemoizeTest::testPassNoCallable";d:0;s:57:"Functional\Tests\MemoizeTest::testSplObjectHashCollisions";d:0;s:56:"Functional\Tests\MinimumTest::testExtractingMinimumValue";d:0;s:49:"Functional\Tests\MinimumTest::testSpecialCaseNull";d:0;s:68:"Functional\Tests\MinimumTest::testSpecialCaseSameValueDifferentTypes";d:0;s:50:"Functional\Tests\MinimumTest::testPassNoCollection";d:0;s:31:"Functional\Tests\NoneTest::test";d:0;s:47:"Functional\Tests\NoneTest::testPassNoCollection";d:0;s:46:"Functional\Tests\NoneTest::testPassNonCallable";d:0;s:45:"Functional\Tests\NoneTest::testPassNoCallable";d:0;s:55:"Functional\Tests\NoneTest::testExceptionIsThrownInArray";d:0;s:58:"Functional\Tests\NoneTest::testExceptionIsThrownInIterator";d:0;s:33:"Functional\Tests\NotTest::testNot";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #0";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #1";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #2";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #3";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #4";d:0;s:52:"Functional\Tests\OmitKeysTest::test with data set #5";d:0;s:60:"Functional\Tests\OmitKeysTest::testPassNonArrayOrTraversable";d:0;s:56:"Functional\Tests\PartialAnyTest::testBindWithPlaceholder";d:0;s:64:"Functional\Tests\PartialAnyTest::testBindWithPlaceholderConstant";d:0;s:65:"Functional\Tests\PartialAnyTest::testBindWithMultiplePlaceholders";d:0;s:65:"Functional\Tests\PartialAnyTest::testPlaceholderParameterPosition";d:0;s:79:"Functional\Tests\PartialAnyTest::testNoFurtherArgumentsResolvedAfterPlaceholder";d:0;s:63:"Functional\Tests\PartialAnyTest::testAliasForUnicodePlaceholder";d:0;s:53:"Functional\Tests\PartialAnyTest::testStringConversion";d:0;s:48:"Functional\Tests\PartialLeftTest::testWithNoArgs";d:0;s:48:"Functional\Tests\PartialLeftTest::testWithOneArg";d:0;s:49:"Functional\Tests\PartialLeftTest::testWithTwoArgs";d:0;s:50:"Functional\Tests\PartialMethodTest::testWithNoArgs";d:0;s:51:"Functional\Tests\PartialMethodTest::testWithTwoArgs";d:0;s:57:"Functional\Tests\PartialMethodTest::testWithInvalidMethod";d:0;s:72:"Functional\Tests\PartialMethodTest::testWithInvalidMethodAndDefaultValue";d:0;s:68:"Functional\Tests\PartialMethodTest::testWithNonObjectAndDefaultValue";d:0;s:61:"Functional\Tests\PartialMethodTest::testWithInvalidMethodName";d:0;s:49:"Functional\Tests\PartialRightTest::testWithNoArgs";d:0;s:49:"Functional\Tests\PartialRightTest::testWithOneArg";d:0;s:50:"Functional\Tests\PartialRightTest::testWithTwoArgs";d:0;s:36:"Functional\Tests\PartitionTest::test";d:0;s:43:"Functional\Tests\PartitionTest::testMultiFn";d:0;s:60:"Functional\Tests\PartitionTest::testExceptionIsThrownInArray";d:0;s:59:"Functional\Tests\PartitionTest::testExceptionIsThrownInHash";d:0;s:63:"Functional\Tests\PartitionTest::testExceptionIsThrownInIterator";d:0;s:67:"Functional\Tests\PartitionTest::testExceptionIsThrownInHashIterator";d:0;s:52:"Functional\Tests\PartitionTest::testPassNoCollection";d:0;s:51:"Functional\Tests\PartitionTest::testPassNonCallable";d:0;s:31:"Functional\Tests\PickTest::test";d:0;s:68:"Functional\Tests\PickTest::testInvalidCollectionShouldThrowException";d:0;s:66:"Functional\Tests\PickTest::testInvalidCallbackShouldThrowException";d:0;s:43:"Functional\Tests\PickTest::testDefaultValue";d:0;s:45:"Functional\Tests\PickTest::testCustomCallback";d:0;s:42:"Functional\Tests\PickTest::testArrayAccess";d:0;s:65:"Functional\Tests\PluckTest::testPluckPropertyThatExistsEverywhere";d:0;s:64:"Functional\Tests\PluckTest::testPluckPropertyThatExistsSomewhere";d:0;s:64:"Functional\Tests\PluckTest::testPluckPropertyFromMixedCollection";d:0;s:54:"Functional\Tests\PluckTest::testPluckProtectedProperty";d:0;s:62:"Functional\Tests\PluckTest::testPluckPropertyInKeyedCollection";d:0;s:54:"Functional\Tests\PluckTest::testPluckNumericArrayIndex";d:0;s:58:"Functional\Tests\PluckTest::testNullLists with data set #0";d:0;s:58:"Functional\Tests\PluckTest::testNullLists with data set #1";d:0;s:57:"Functional\Tests\PluckTest::testNullHash with data set #0";d:0;s:57:"Functional\Tests\PluckTest::testNullHash with data set #1";d:0;s:48:"Functional\Tests\PluckTest::testPassNoCollection";d:0;s:50:"Functional\Tests\PluckTest::testPassNoPropertyName";d:0;s:78:"Functional\Tests\PluckTest::testExceptionThrownInMagicIssetWhileIteratingArray";d:0;s:81:"Functional\Tests\PluckTest::testExceptionThrownInMagicIssetWhileIteratingIterator";d:0;s:76:"Functional\Tests\PluckTest::testExceptionThrownInMagicGetWhileIteratingArray";d:0;s:79:"Functional\Tests\PluckTest::testExceptionThrownInMagicGetWhileIteratingIterator";d:0;s:47:"Functional\Tests\PluckTest::testClassCallsPluck";d:0;s:46:"Functional\Tests\PollTest::testPollReturnsTrue";d:0.002;s:53:"Functional\Tests\PollTest::testPollRetriesIfNotTruthy";d:0;s:64:"Functional\Tests\PollTest::testPollRetriesAndGivesUpAfterTimeout";d:0.002;s:61:"Functional\Tests\PollTest::testWithEmptyDelayCallsAtLeastOnce";d:0;s:71:"Functional\Tests\PollTest::testThrowsExceptionIfTimeoutCountNotAtLeast0";d:0;s:34:"Functional\Tests\ProductTest::test";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #0";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #1";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #2";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #3";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #4";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #5";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #6";d:0;s:80:"Functional\Tests\ProductTest::testElementsOfWrongTypeAreIgnored with data set #7";d:0;s:50:"Functional\Tests\ProductTest::testPassNoCollection";d:0;s:32:"Functional\Tests\RatioTest::test";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #0";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #1";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #2";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #3";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #4";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #5";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #6";d:0;s:78:"Functional\Tests\RatioTest::testElementsOfWrongTypeAreIgnored with data set #7";d:0;s:48:"Functional\Tests\RatioTest::testPassNoCollection";d:0;s:41:"Functional\Tests\ReduceTest::testReducing";d:0;s:81:"Functional\Tests\ReduceTest::testExceptionThrownInIteratorCallbackWhileReduceLeft";d:0;s:82:"Functional\Tests\ReduceTest::testExceptionThrownInIteratorCallbackWhileReduceRight";d:0;s:78:"Functional\Tests\ReduceTest::testExceptionThrownInArrayCallbackWhileReduceLeft";d:0;s:79:"Functional\Tests\ReduceTest::testExceptionThrownInArrayCallbackWhileReduceRight";d:0;s:61:"Functional\Tests\ReduceTest::testPassNoCollectionToReduceLeft";d:0;s:60:"Functional\Tests\ReduceTest::testPassNonCallableToReduceLeft";d:0;s:62:"Functional\Tests\ReduceTest::testPassNoCollectionToReduceRight";d:0;s:61:"Functional\Tests\ReduceTest::testPassNonCallableToReduceRight";d:0;s:34:"Functional\Tests\ReindexTest::test";d:0;s:47:"Functional\Tests\ReindexTest::testDuplicateKeys";d:0;s:58:"Functional\Tests\ReindexTest::testExceptionIsThrownInArray";d:0;s:57:"Functional\Tests\ReindexTest::testExceptionIsThrownInHash";d:0;s:61:"Functional\Tests\ReindexTest::testExceptionIsThrownInIterator";d:0;s:65:"Functional\Tests\ReindexTest::testExceptionIsThrownInHashIterator";d:0;s:50:"Functional\Tests\ReindexTest::testPassNoCollection";d:0;s:49:"Functional\Tests\ReindexTest::testPassNonCallable";d:0;s:33:"Functional\Tests\RejectTest::test";d:0;s:48:"Functional\Tests\RejectTest::testPassNonCallable";d:0;s:47:"Functional\Tests\RejectTest::testPassNoCallable";d:0;s:49:"Functional\Tests\RejectTest::testPassNoCollection";d:0;s:57:"Functional\Tests\RejectTest::testExceptionIsThrownInArray";d:0;s:56:"Functional\Tests\RejectTest::testExceptionIsThrownInHash";d:0;s:60:"Functional\Tests\RejectTest::testExceptionIsThrownInIterator";d:0;s:64:"Functional\Tests\RejectTest::testExceptionIsThrownInHashIterator";d:0;s:33:"Functional\Tests\RepeatTest::test";d:0;s:54:"Functional\Tests\RepeatTest::testNegativeRepeatedTimes";d:0;s:53:"Functional\Tests\RetryTest::testTriedOnceIfItSucceeds";d:0;s:48:"Functional\Tests\RetryTest::testRetriedIfItFails";d:0;s:68:"Functional\Tests\RetryTest::testThrowsExceptionIfRetryCountIsReached";d:0;s:59:"Functional\Tests\RetryTest::testRetryWithEmptyDelaySequence";d:0;s:70:"Functional\Tests\RetryTest::testThrowsExceptionIfRetryCountNotAtLeast1";d:0;s:63:"Functional\Tests\RetryTest::testUsesDelayTraversableForSleeping";d:0;s:57:"Functional\Tests\RetryTest::testDelayerSmallerThanRetries";d:0;s:54:"Functional\Tests\SelectKeysTest::test with data set #0";d:0;s:54:"Functional\Tests\SelectKeysTest::test with data set #1";d:0;s:54:"Functional\Tests\SelectKeysTest::test with data set #2";d:0;s:54:"Functional\Tests\SelectKeysTest::test with data set #3";d:0;s:54:"Functional\Tests\SelectKeysTest::test with data set #4";d:0;s:62:"Functional\Tests\SelectKeysTest::testPassNonArrayOrTraversable";d:0;s:50:"Functional\Tests\SelectTest::test with data set #0";d:0;s:50:"Functional\Tests\SelectTest::test with data set #1";d:0;s:65:"Functional\Tests\SelectTest::testPassNonCallable with data set #0";d:0;s:65:"Functional\Tests\SelectTest::testPassNonCallable with data set #1";d:0;s:47:"Functional\Tests\SelectTest::testPassNoCallable";d:0;s:66:"Functional\Tests\SelectTest::testPassNoCollection with data set #0";d:0;s:66:"Functional\Tests\SelectTest::testPassNoCollection with data set #1";d:0;s:74:"Functional\Tests\SelectTest::testExceptionIsThrownInArray with data set #0";d:0;s:74:"Functional\Tests\SelectTest::testExceptionIsThrownInArray with data set #1";d:0;s:73:"Functional\Tests\SelectTest::testExceptionIsThrownInHash with data set #0";d:0;s:73:"Functional\Tests\SelectTest::testExceptionIsThrownInHash with data set #1";d:0;s:77:"Functional\Tests\SelectTest::testExceptionIsThrownInIterator with data set #0";d:0;s:77:"Functional\Tests\SelectTest::testExceptionIsThrownInIterator with data set #1";d:0;s:81:"Functional\Tests\SelectTest::testExceptionIsThrownInHashIterator with data set #0";d:0;s:81:"Functional\Tests\SelectTest::testExceptionIsThrownInHashIterator with data set #1";d:0;s:61:"Functional\Tests\SequenceConstantTest::testConstantIncrements";d:0;s:72:"Functional\Tests\SequenceConstantTest::testArgumentMustBePositiveInteger";d:0;s:87:"Functional\Tests\SequenceExponentialTest::testExponentialIncrementsWith100PercentGrowth";d:0.001;s:86:"Functional\Tests\SequenceExponentialTest::testExponentialIncrementsWith50PercentGrowth";d:0;s:80:"Functional\Tests\SequenceExponentialTest::testStartArgumentMustBePositiveInteger";d:0;s:81:"Functional\Tests\SequenceExponentialTest::testGrowthArgumentMustBePositiveInteger";d:0;s:92:"Functional\Tests\SequenceExponentialTest::testGrowthArgumentMustBePositiveIntegerLessThan100";d:0;s:57:"Functional\Tests\SequenceLinearTest::testLinearIncrements";d:0.001;s:65:"Functional\Tests\SequenceLinearTest::testLinearNegativeIncrements";d:0;s:70:"Functional\Tests\SequenceLinearTest::testArgumentMustBePositiveInteger";d:0;s:68:"Functional\Tests\SequenceLinearTest::testAmountArgumentMustBeInteger";d:0;s:31:"Functional\Tests\SomeTest::test";d:0;s:46:"Functional\Tests\SomeTest::testPassNonCallable";d:0;s:45:"Functional\Tests\SomeTest::testPassNoCallable";d:0;s:47:"Functional\Tests\SomeTest::testPassNoCollection";d:0;s:53:"Functional\Tests\SomeTest::testExceptionThrownInArray";d:0;s:58:"Functional\Tests\SomeTest::testExceptionThrownInCollection";d:0;s:43:"Functional\Tests\SortTest::testPreserveKeys";d:0;s:50:"Functional\Tests\SortTest::testWithoutPreserveKeys";d:0;s:46:"Functional\Tests\SortTest::testPassNonCallable";d:0;s:47:"Functional\Tests\SortTest::testPassNoCollection";d:0;s:55:"Functional\Tests\SortTest::testExceptionIsThrownInArray";d:0;s:54:"Functional\Tests\SortTest::testExceptionIsThrownInHash";d:0;s:58:"Functional\Tests\SortTest::testExceptionIsThrownInIterator";d:0;s:62:"Functional\Tests\SortTest::testExceptionIsThrownInHashIterator";d:0;s:30:"Functional\Tests\SumTest::test";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #0";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #1";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #2";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #3";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #4";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #5";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #6";d:0;s:76:"Functional\Tests\SumTest::testElementsOfWrongTypeAreIgnored with data set #7";d:0;s:46:"Functional\Tests\SumTest::testPassNoCollection";d:0;s:57:"Functional\Tests\SuppressErrorTest::testErrorIsSuppressed";d:0;s:57:"Functional\Tests\SuppressErrorTest::testFunctionIsWrapped";d:0;s:73:"Functional\Tests\SuppressErrorTest::testExceptionsAreHandledTransparently";d:0;s:64:"Functional\Tests\SuppressErrorTest::testErrorHandlerNestingWorks";d:0;s:54:"Functional\Tests\TailRecursionTest::testTailRecursion1";d:0;s:54:"Functional\Tests\TailRecursionTest::testTailRecursion2";d:0.002;s:31:"Functional\Tests\TailTest::test";d:0;s:46:"Functional\Tests\TailTest::testWithoutCallback";d:0;s:46:"Functional\Tests\TailTest::testPassNonCallable";d:0;s:55:"Functional\Tests\TailTest::testExceptionIsThrownInArray";d:0;s:60:"Functional\Tests\TailTest::testExceptionIsThrownInCollection";d:0;s:47:"Functional\Tests\TailTest::testPassNoCollection";d:0;s:35:"Functional\Tests\TakeLeftTest::test";d:0;s:36:"Functional\Tests\TakeRightTest::test";d:0;s:48:"Functional\Tests\TakeRightTest::testPreserveKeys";d:0;s:45:"Functional\Tests\TapTest::testPassNonCallable";d:0;s:33:"Functional\Tests\TapTest::testTap";d:0;s:31:"Functional\Tests\TrueTest::test";d:0;s:47:"Functional\Tests\TrueTest::testPassNoCollection";d:0;s:33:"Functional\Tests\TruthyTest::test";d:0;s:49:"Functional\Tests\TruthyTest::testPassNoCollection";d:0;s:48:"Functional\Tests\UniqueTest::testDefaultBehavior";d:0;s:50:"Functional\Tests\UniqueTest::testUnifyingByClosure";d:0;s:47:"Functional\Tests\UniqueTest::testUnifyingStrict";d:0;s:54:"Functional\Tests\UniqueTest::testPassingNullAsCallback";d:0;s:57:"Functional\Tests\UniqueTest::testExceptionIsThrownInArray";d:0;s:56:"Functional\Tests\UniqueTest::testExceptionIsThrownInHash";d:0;s:60:"Functional\Tests\UniqueTest::testExceptionIsThrownInIterator";d:0;s:64:"Functional\Tests\UniqueTest::testExceptionIsThrownInHashIterator";d:0;s:49:"Functional\Tests\UniqueTest::testPassNoCollection";d:0;s:65:"Functional\Tests\UniqueTest::testPassNonCallableUndefinedFunction";d:0;s:84:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "Nothing"";d:0;s:81:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "NULL"";d:0;s:88:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "null string"";d:0;s:83:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "string"";d:0;s:85:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "integers"";d:0;s:91:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "funky integers"";d:0;s:92:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "integer & float"";d:0;s:92:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "array of string"";d:0;s:104:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "nested array of strings (1)"";d:0;s:112:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "nested array of strings (variation)"";d:0;s:110:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "multiple nested arrays of strings"";d:0;s:122:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "multiple nested arrays of strings (variation)"";d:0;s:83:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set "hashes"";d:0;s:77:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set #0";d:0;s:77:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set #1";d:0;s:77:"Functional\Tests\ValueToKeyTest::testValueToRefOnSimpleTypes with data set #2";d:0;s:64:"Functional\Tests\ValueToKeyTest::testExpectationsAreNonIdentical";d:0;s:75:"Functional\Tests\ValueToKeyTest::testResourcesAreForbidden with data set #0";d:0;s:75:"Functional\Tests\ValueToKeyTest::testResourcesAreForbidden with data set #1";d:0;s:75:"Functional\Tests\ValueToKeyTest::testResourcesAreForbidden with data set #2";d:0;s:75:"Functional\Tests\ValueToKeyTest::testResourcesAreForbidden with data set #3";d:0;s:65:"Functional\Tests\ValueToKeyTest::testObjectReferencesWithStdClass";d:0;s:68:"Functional\Tests\ValueToKeyTest::testObjectReferencesWithArrayObject";d:0;s:39:"Functional\Tests\WithTest::testWithNull";d:0;s:40:"Functional\Tests\WithTest::testWithValue";d:0;s:46:"Functional\Tests\WithTest::testPassNonCallable";d:0;s:43:"Functional\Tests\WithTest::testDefaultValue";d:0;s:38:"Functional\Tests\ZipAllTest::testEmpty";d:0;s:44:"Functional\Tests\ZipAllTest::testMissingKeys";d:0;s:48:"Functional\Tests\ZipAllTest::testDifferentLength";d:0;s:41:"Functional\Tests\ZipAllTest::testCallback";d:0;s:41:"Functional\Tests\ZipAllTest::testIterator";d:0;s:52:"Functional\Tests\ZipTest::testZippingSameSizedArrays";d:0;s:59:"Functional\Tests\ZipTest::testZippingDifferentlySizedArrays";d:0;s:43:"Functional\Tests\ZipTest::testZippingHashes";d:0;s:49:"Functional\Tests\ZipTest::testZippingWithCallback";d:0;s:62:"Functional\Tests\ZipTest::testZippingArraysWithVariousElements";d:0;s:45:"Functional\Tests\ZipTest::testZipSpecialCases";d:0;s:58:"Functional\Tests\ZipTest::testPassNoCollectionAsFirstParam";d:0;s:59:"Functional\Tests\ZipTest::testPassNoCollectionAsSecondParam";d:0;s:49:"Functional\Tests\ZipTest::testExceptionInCallback";d:0;}}}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 6017cf63..36d69edf 100644
--- a/composer.json
+++ b/composer.json
@@ -18,9 +18,9 @@
"php": "~7|~8"
},
"require-dev": {
- "phpunit/phpunit": "~7",
"squizlabs/php_codesniffer": "~3.0",
- "friendsofphp/php-cs-fixer": "^2.14"
+ "friendsofphp/php-cs-fixer": "^2.14",
+ "phpunit/phpunit": "^9.5"
},
"autoload": {
"psr-4": {"Functional\\": "src/Functional"},
diff --git a/tests/Functional/AbstractTestCase.php b/tests/Functional/AbstractTestCase.php
index 8b1af2be..995a114d 100644
--- a/tests/Functional/AbstractTestCase.php
+++ b/tests/Functional/AbstractTestCase.php
@@ -32,17 +32,16 @@ class AbstractTestCase extends TestCase
private $functions = [];
- public function setUp()
+ public function setUp(): void
{
$this->functions = F\flatten(
(array) (
- func_num_args() > 0
- ? func_get_arg(0)
- : $this->getFunctionName()
+ func_num_args() > 0
+ ? func_get_arg(0)
+ : $this->getFunctionName()
)
);
-
foreach ($this->functions as $function) {
if (!function_exists($function)) {
$this->markTestSkipped(
@@ -111,6 +110,6 @@ private function getFunctionName()
)
);
- return 'Functional\\' . $function;
+ return 'Functional\\'.$function;
}
}
diff --git a/tests/Functional/AverageTest.php b/tests/Functional/AverageTest.php
index d4d8e41e..e086a283 100644
--- a/tests/Functional/AverageTest.php
+++ b/tests/Functional/AverageTest.php
@@ -68,10 +68,10 @@ public function test()
$this->assertSame(5, average($this->list));
$this->assertSame(5, average($this->listIterator));
- $this->assertEquals(0.833333333, average($this->hash2), '', 0.001);
- $this->assertEquals(0.833333333, average($this->hashIterator2), '', 0.001);
- $this->assertEquals(0.833333333, average($this->list2), '', 0.001);
- $this->assertEquals(0.833333333, average($this->listIterator2), '', 0.001);
+ $this->assertEqualsWithDelta(0.833333333, average($this->hash2), 0.001);
+ $this->assertEqualsWithDelta(0.833333333, average($this->hashIterator2), 0.001);
+ $this->assertEqualsWithDelta(0.833333333, average($this->list2), 0.001);
+ $this->assertEqualsWithDelta(0.833333333, average($this->listIterator2), 0.001);
$this->assertNull(average($this->hash3));
$this->assertNull(average($this->hashIterator3));
diff --git a/tests/Functional/ButLastTest.php b/tests/Functional/ButLastTest.php
index 0d1c946b..62861fcc 100644
--- a/tests/Functional/ButLastTest.php
+++ b/tests/Functional/ButLastTest.php
@@ -17,7 +17,7 @@
class ButLastTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [1, 2, 3, 4];
diff --git a/tests/Functional/ComposeTest.php b/tests/Functional/ComposeTest.php
index 70dfca2f..abc7a3ab 100644
--- a/tests/Functional/ComposeTest.php
+++ b/tests/Functional/ComposeTest.php
@@ -14,7 +14,7 @@
class ComposeTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
}
diff --git a/tests/Functional/ConcatTest.php b/tests/Functional/ConcatTest.php
index 6bce8a3f..422d9d4a 100644
--- a/tests/Functional/ConcatTest.php
+++ b/tests/Functional/ConcatTest.php
@@ -14,7 +14,7 @@
class ConcatTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
}
diff --git a/tests/Functional/DifferenceTest.php b/tests/Functional/DifferenceTest.php
index da872efd..a7678f1f 100644
--- a/tests/Functional/DifferenceTest.php
+++ b/tests/Functional/DifferenceTest.php
@@ -16,7 +16,7 @@
class DifferenceTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->intArray = [1 => 1, 2, "foo" => 3, 4];
diff --git a/tests/Functional/DropTest.php b/tests/Functional/DropTest.php
index 13704d32..eac40191 100644
--- a/tests/Functional/DropTest.php
+++ b/tests/Functional/DropTest.php
@@ -18,7 +18,7 @@
class DropTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp('Functional\drop_first', 'Functional\drop_last');
$this->list = ['value1', 'value2', 'value3', 'value4'];
diff --git a/tests/Functional/EachTest.php b/tests/Functional/EachTest.php
index 3497b8fb..5f964a6e 100644
--- a/tests/Functional/EachTest.php
+++ b/tests/Functional/EachTest.php
@@ -12,11 +12,17 @@
use ArrayIterator;
+use PHPUnit\Framework\MockObject\MockObject;
use function Functional\each;
class EachTest extends AbstractTestCase
{
- public function setUp()
+ /**
+ * @var MockObject
+ */
+ private $cb;
+
+ public function setUp(): void
{
parent::setUp();
$this->cb = $this->getMockBuilder('cb')
@@ -68,12 +74,16 @@ public function testExceptionIsThrownInCollection()
each($this->listIterator, [$this, 'exception']);
}
- public function prepareCallback($collection)
+ private function prepareCallback($collection)
{
- $i = 0;
+ $args = [];
+
foreach ($collection as $key => $value) {
- $this->cb->expects($this->at($i++))->method('call')->with($value, $key, $collection);
+ $args[] = [$value, $key, $collection];
}
+
+ $this->cb->method('call')
+ ->withConsecutive(...$args);
}
public function testPassNonCallable()
diff --git a/tests/Functional/EveryTest.php b/tests/Functional/EveryTest.php
index 25ad1f64..8efe6da0 100644
--- a/tests/Functional/EveryTest.php
+++ b/tests/Functional/EveryTest.php
@@ -17,7 +17,7 @@
class EveryTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->goodArray = ['value', 'value', 'value'];
diff --git a/tests/Functional/FalseTest.php b/tests/Functional/FalseTest.php
index 069a9579..3245b59b 100644
--- a/tests/Functional/FalseTest.php
+++ b/tests/Functional/FalseTest.php
@@ -15,7 +15,7 @@
class FalseTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->trueArray = [false, false, false, false];
diff --git a/tests/Functional/FalsyTest.php b/tests/Functional/FalsyTest.php
index f6788348..89da2882 100644
--- a/tests/Functional/FalsyTest.php
+++ b/tests/Functional/FalsyTest.php
@@ -16,7 +16,7 @@
class FalsyTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->trueArray = [false, null, false, false, 0];
diff --git a/tests/Functional/FirstTest.php b/tests/Functional/FirstTest.php
index e830f245..5474ca0b 100644
--- a/tests/Functional/FirstTest.php
+++ b/tests/Functional/FirstTest.php
@@ -26,7 +26,7 @@ public function getAliases()
];
}
- public function setUp()
+ public function setUp(): void
{
parent::setUp($this->getAliases());
$this->list = ['first', 'second', 'third'];
diff --git a/tests/Functional/FlatMapTest.php b/tests/Functional/FlatMapTest.php
index 1eae1a13..28248385 100644
--- a/tests/Functional/FlatMapTest.php
+++ b/tests/Functional/FlatMapTest.php
@@ -17,7 +17,7 @@
class FlatMapTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['a', ['b'], ['C' => 'c'], [['d']], null];
diff --git a/tests/Functional/FlattenTest.php b/tests/Functional/FlattenTest.php
index 108d9a43..4814570f 100644
--- a/tests/Functional/FlattenTest.php
+++ b/tests/Functional/FlattenTest.php
@@ -17,7 +17,7 @@
class FlattenTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->goodArray = [1, 2, 3, [4, 5, 6, [7, 8, 9]], 10, [11, [12, 13], 14], 15];
diff --git a/tests/Functional/FunctionalTest.php b/tests/Functional/FunctionalTest.php
index 85b9bfda..07156977 100644
--- a/tests/Functional/FunctionalTest.php
+++ b/tests/Functional/FunctionalTest.php
@@ -24,7 +24,7 @@ public function testAllDefinedConstantsAreValidCallables()
$functions = $functionalClass->getConstants();
foreach ($functions as $function) {
- $this->assertInternalType('callable', $function);
+ $this->assertTrue(is_callable($function));
}
}
diff --git a/tests/Functional/GroupTest.php b/tests/Functional/GroupTest.php
index 41a0198f..77c469ed 100644
--- a/tests/Functional/GroupTest.php
+++ b/tests/Functional/GroupTest.php
@@ -17,7 +17,7 @@
class GroupTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value1', 'value2', 'value3', 'value4'];
diff --git a/tests/Functional/InvokeFirstTest.php b/tests/Functional/InvokeFirstTest.php
index 3f8c4dd0..e8d0d7f9 100644
--- a/tests/Functional/InvokeFirstTest.php
+++ b/tests/Functional/InvokeFirstTest.php
@@ -16,7 +16,7 @@
class InvokeFirstTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [$this, null, null];
diff --git a/tests/Functional/InvokeLastTest.php b/tests/Functional/InvokeLastTest.php
index 6d8064ff..80e3b6c9 100644
--- a/tests/Functional/InvokeLastTest.php
+++ b/tests/Functional/InvokeLastTest.php
@@ -16,7 +16,7 @@
class InvokeLastTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [null, null, $this];
diff --git a/tests/Functional/InvokeTest.php b/tests/Functional/InvokeTest.php
index d667967b..9c290aa4 100644
--- a/tests/Functional/InvokeTest.php
+++ b/tests/Functional/InvokeTest.php
@@ -16,7 +16,7 @@
class InvokeTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [$this, $this, $this];
diff --git a/tests/Functional/LastTest.php b/tests/Functional/LastTest.php
index d6bb16ca..aeea4097 100644
--- a/tests/Functional/LastTest.php
+++ b/tests/Functional/LastTest.php
@@ -17,7 +17,7 @@
class LastTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['first', 'second', 'third', 'fourth'];
diff --git a/tests/Functional/MapTest.php b/tests/Functional/MapTest.php
index f0530def..1eca1804 100644
--- a/tests/Functional/MapTest.php
+++ b/tests/Functional/MapTest.php
@@ -17,7 +17,7 @@
class MapTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value', 'value'];
diff --git a/tests/Functional/MatchingTest.php b/tests/Functional/MatchingTest.php
index 349a4658..449d102e 100644
--- a/tests/Functional/MatchingTest.php
+++ b/tests/Functional/MatchingTest.php
@@ -102,9 +102,9 @@ public function testDeprecatedAlias()
self::markTestSkipped('Only works with PHP <8.0');
}
- $this->expectException(
- Deprecated::class,
- 'Functional\match() is deprecated as it is incompatible with PHP 8. Use Functional\matching() instead'
+ $this->expectDeprecation();
+ $this->expectDeprecationMessage(
+ 'Functional\match() will be unavailable with PHP 8. Use Functional\matching() instead'
);
match([]);
}
diff --git a/tests/Functional/MaximumTest.php b/tests/Functional/MaximumTest.php
index 48804597..2827f547 100644
--- a/tests/Functional/MaximumTest.php
+++ b/tests/Functional/MaximumTest.php
@@ -17,7 +17,7 @@
class MaximumTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [1, "foo", 5.1, 5, "5.2", true, false, [], new stdClass()];
diff --git a/tests/Functional/MemoizeTest.php b/tests/Functional/MemoizeTest.php
index ddfc598e..5be3aad4 100644
--- a/tests/Functional/MemoizeTest.php
+++ b/tests/Functional/MemoizeTest.php
@@ -10,8 +10,8 @@
namespace Functional\Tests;
-use PHPUnit_Framework_MockObject_MockObject as MockObject;
use BadMethodCallException;
+use PHPUnit\Framework\MockObject\MockObject;
use RuntimeException;
use function Functional\memoize;
@@ -42,7 +42,7 @@ public static function call()
return 'STATIC METHOD VALUE' . self::invoke(__METHOD__);
}
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->callback = $this->getMockBuilder('stdClass')
@@ -91,16 +91,9 @@ public function testMemoizeClosureCall()
public function testMemoizeWithArguments()
{
$this->callback
- ->expects($this->at(0))
->method('execute')
- ->with('FOO', 'BAR')
- ->will($this->returnValue('FOO BAR'));
-
- $this->callback
- ->expects($this->at(1))
- ->method('execute')
- ->with('BAR', 'BAZ')
- ->will($this->returnValue('BAR BAZ'));
+ ->withConsecutive(['FOO', 'BAR'], ['BAR', 'BAZ'])
+ ->willReturnOnConsecutiveCalls('FOO BAR', 'BAR BAZ');
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['FOO', 'BAR']));
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['FOO', 'BAR']));
@@ -111,16 +104,9 @@ public function testMemoizeWithArguments()
public function testMemoizeWithCustomKey()
{
$this->callback
- ->expects($this->at(0))
- ->method('execute')
- ->with('FOO', 'BAR')
- ->will($this->returnValue('FOO BAR'));
-
- $this->callback
- ->expects($this->at(1))
->method('execute')
- ->with('BAR', 'BAZ')
- ->will($this->returnValue('BAR BAZ'));
+ ->withConsecutive(['FOO', 'BAR'], ['BAR', 'BAZ'])
+ ->willReturnOnConsecutiveCalls('FOO BAR', 'BAR BAZ');
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['FOO', 'BAR'], 'MY:CUSTOM:KEY'));
$this->assertSame('FOO BAR', memoize([$this->callback, 'execute'], ['BAR', 'BAZ'], 'MY:CUSTOM:KEY'), 'Result already memoized');
diff --git a/tests/Functional/MinimumTest.php b/tests/Functional/MinimumTest.php
index 86232954..17f6bfb1 100644
--- a/tests/Functional/MinimumTest.php
+++ b/tests/Functional/MinimumTest.php
@@ -17,7 +17,7 @@
class MinimumTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [1, "foo", 5.1, 5, "5.2", true, false, [], new stdClass()];
diff --git a/tests/Functional/NoneTest.php b/tests/Functional/NoneTest.php
index f13bef53..b8c6790f 100644
--- a/tests/Functional/NoneTest.php
+++ b/tests/Functional/NoneTest.php
@@ -17,7 +17,7 @@
class NoneTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->goodArray = ['value', 'value', 'value'];
diff --git a/tests/Functional/PartitionTest.php b/tests/Functional/PartitionTest.php
index 71193cb8..006cd5ea 100644
--- a/tests/Functional/PartitionTest.php
+++ b/tests/Functional/PartitionTest.php
@@ -17,7 +17,7 @@
class PartitionTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value1', 'value2', 'value3'];
diff --git a/tests/Functional/PickTest.php b/tests/Functional/PickTest.php
index 0b4ae208..51e08df8 100644
--- a/tests/Functional/PickTest.php
+++ b/tests/Functional/PickTest.php
@@ -18,7 +18,7 @@ class PickTest extends AbstractTestCase
{
private $array_1;
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->array_1 = [
diff --git a/tests/Functional/PluckTest.php b/tests/Functional/PluckTest.php
index a36e1f6f..cc94cbc3 100644
--- a/tests/Functional/PluckTest.php
+++ b/tests/Functional/PluckTest.php
@@ -89,7 +89,7 @@ public function call($collection, $property)
class PluckTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->propertyExistsEverywhereArray = [(object)['property' => 1], (object)['property' => 2]];
diff --git a/tests/Functional/PollTest.php b/tests/Functional/PollTest.php
index 1e0dec93..d98678a6 100644
--- a/tests/Functional/PollTest.php
+++ b/tests/Functional/PollTest.php
@@ -11,8 +11,7 @@
namespace Functional\Tests;
use ArrayIterator;
-use PHPUnit_Framework_MockObject_MockObject as MockObject;
-
+use PHPUnit\Framework\MockObject\MockObject;
use function Functional\poll;
interface Poller
@@ -25,7 +24,7 @@ class PollTest extends AbstractTestCase
/** @var MockObject */
private $poller;
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->poller = $this->createMock('Functional\Tests\Poller');
@@ -45,15 +44,9 @@ public function testPollReturnsTrue()
public function testPollRetriesIfNotTruthy()
{
$this->poller
- ->expects($this->at(0))
- ->method('poll')
- ->with(0, 0)
- ->willReturn(false);
- $this->poller
- ->expects($this->at(1))
->method('poll')
- ->with(1, 0)
- ->willReturn('OH HAI');
+ ->withConsecutive([0, 0], [1, 0])
+ ->willReturnOnConsecutiveCalls(false, 'OH HAI');
$this->assertSame('OH HAI', poll([$this->poller, 'poll'], 2000));
}
@@ -61,9 +54,8 @@ public function testPollRetriesIfNotTruthy()
public function testPollRetriesAndGivesUpAfterTimeout()
{
$this->poller
- ->expects($this->at(0))
->method('poll')
- ->with(0, 0)
+ ->withConsecutive([0, 0])
->willReturnCallback(
function () {
usleep(100);
@@ -77,9 +69,8 @@ function () {
public function testWithEmptyDelayCallsAtLeastOnce()
{
$this->poller
- ->expects($this->at(0))
->method('poll')
- ->with(0, 0)
+ ->withConsecutive([0, 0])
->willReturn(true);
$this->assertTrue(poll([$this->poller, 'poll'], 0, new ArrayIterator([])));
diff --git a/tests/Functional/ProductTest.php b/tests/Functional/ProductTest.php
index b2c0c928..6d8d2fef 100644
--- a/tests/Functional/ProductTest.php
+++ b/tests/Functional/ProductTest.php
@@ -16,7 +16,7 @@
class ProductTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->intArray = [1 => 1, 2, "foo" => 3, 4];
diff --git a/tests/Functional/RatioTest.php b/tests/Functional/RatioTest.php
index 4731d03c..f88e06cb 100644
--- a/tests/Functional/RatioTest.php
+++ b/tests/Functional/RatioTest.php
@@ -16,7 +16,7 @@
class RatioTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->intArray = [1 => 1, 2, "foo" => 3, 4];
@@ -31,14 +31,14 @@ public function test()
$this->assertSame(1, ratio(new ArrayIterator([1])));
$this->assertSame(1, ratio($this->intArray, 24));
$this->assertSame(1, ratio($this->intIterator, 24));
- $this->assertEquals(-1, ratio($this->floatArray, -1.65), '', 0.01);
- $this->assertEquals(-1, ratio($this->floatIterator, -1.65), '', 0.01);
+ $this->assertEqualsWithDelta(-1, ratio($this->floatArray, -1.65), 0.01);
+ $this->assertEqualsWithDelta(-1, ratio($this->floatIterator, -1.65), 0.01);
}
/** @dataProvider Functional\Tests\MathDataProvider::injectErrorCollection */
public function testElementsOfWrongTypeAreIgnored($collection)
{
- $this->assertEquals(0.333, ratio($collection), '', 0.001);
+ $this->assertEqualsWithDelta(0.333, ratio($collection), 0.001);
}
public function testPassNoCollection()
diff --git a/tests/Functional/ReduceTest.php b/tests/Functional/ReduceTest.php
index da9bd575..2aa52cbf 100644
--- a/tests/Functional/ReduceTest.php
+++ b/tests/Functional/ReduceTest.php
@@ -17,7 +17,7 @@
class ReduceTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp('Functional\reduce_right', 'Functional\reduce_left');
$this->list = ['one', 'two', 'three'];
diff --git a/tests/Functional/ReindexTest.php b/tests/Functional/ReindexTest.php
index 5e451962..ea348d9e 100644
--- a/tests/Functional/ReindexTest.php
+++ b/tests/Functional/ReindexTest.php
@@ -17,7 +17,7 @@
class ReindexTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value', 'value'];
diff --git a/tests/Functional/RejectTest.php b/tests/Functional/RejectTest.php
index 6ff2052f..624d1ea7 100644
--- a/tests/Functional/RejectTest.php
+++ b/tests/Functional/RejectTest.php
@@ -17,7 +17,7 @@
class RejectTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value', 'wrong', 'value'];
diff --git a/tests/Functional/RepeatTest.php b/tests/Functional/RepeatTest.php
index 4f0eb6d2..3454d0d3 100644
--- a/tests/Functional/RepeatTest.php
+++ b/tests/Functional/RepeatTest.php
@@ -27,7 +27,7 @@ class RepeatTest extends AbstractTestCase
/** @var Repeated|MockObject */
private $repeated;
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->repeated = $this->createMock(Repeated::class);
diff --git a/tests/Functional/RetryTest.php b/tests/Functional/RetryTest.php
index 609ca392..8e1b2454 100644
--- a/tests/Functional/RetryTest.php
+++ b/tests/Functional/RetryTest.php
@@ -11,9 +11,9 @@
namespace Functional\Tests;
use ArrayIterator;
-use PHPUnit_Framework_MockObject_MockObject as MockObject;
use Exception;
+use PHPUnit\Framework\MockObject\MockObject;
use function Functional\retry;
interface Retryer
@@ -26,7 +26,7 @@ class RetryTest extends AbstractTestCase
/** @var MockObject */
private $retryer;
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->retryer = $this->createMock('Functional\Tests\Retryer');
@@ -46,15 +46,9 @@ public function testTriedOnceIfItSucceeds()
public function testRetriedIfItFails()
{
$this->retryer
- ->expects($this->at(0))
->method('retry')
- ->with(0, 0)
- ->willThrowException(new Exception());
- $this->retryer
- ->expects($this->at(1))
- ->method('retry')
- ->with(1, 0)
- ->willReturn('value');
+ ->withConsecutive([0, 0], [1, 0])
+ ->willReturnOnConsecutiveCalls($this->throwException(new Exception()), 'value');
$this->assertSame('value', retry([$this->retryer, 'retry'], 10));
}
@@ -62,15 +56,12 @@ public function testRetriedIfItFails()
public function testThrowsExceptionIfRetryCountIsReached()
{
$this->retryer
- ->expects($this->at(0))
- ->method('retry')
- ->with(0, 0)
- ->willThrowException(new Exception('first'));
- $this->retryer
- ->expects($this->at(1))
->method('retry')
- ->with(1, 0)
- ->willThrowException(new Exception('second'));
+ ->withConsecutive([0, 0], [1, 0])
+ ->willReturnOnConsecutiveCalls(
+ $this->throwException(new Exception('first')),
+ $this->throwException(new Exception('second'))
+ );
$this->expectException('Exception');
@@ -81,15 +72,12 @@ public function testThrowsExceptionIfRetryCountIsReached()
public function testRetryWithEmptyDelaySequence()
{
$this->retryer
- ->expects($this->at(0))
- ->method('retry')
- ->with(0, 0)
- ->willThrowException(new Exception('first'));
- $this->retryer
- ->expects($this->at(1))
->method('retry')
- ->with(1, 0)
- ->willThrowException(new Exception('second'));
+ ->withConsecutive([0, 0], [1, 0])
+ ->willReturnOnConsecutiveCalls(
+ $this->throwException(new Exception('first')),
+ $this->throwException(new Exception('second'))
+ );
$this->expectException('Exception');
@@ -108,15 +96,12 @@ public function testThrowsExceptionIfRetryCountNotAtLeast1()
public function testUsesDelayTraversableForSleeping()
{
$this->retryer
- ->expects($this->at(0))
->method('retry')
- ->with(0, 0)
- ->willThrowException(new Exception('first'));
- $this->retryer
- ->expects($this->at(1))
- ->method('retry')
- ->with(1, 0)
- ->willThrowException(new Exception('second'));
+ ->withConsecutive([0, 0], [1, 0])
+ ->willReturnOnConsecutiveCalls(
+ $this->throwException(new Exception('first')),
+ $this->throwException(new Exception('second'))
+ );
$this->expectException('Exception');
@@ -127,29 +112,18 @@ public function testUsesDelayTraversableForSleeping()
public function testDelayerSmallerThanRetries()
{
$this->retryer
- ->expects($this->at(0))
- ->method('retry')
- ->with(0, 10)
- ->willThrowException(new Exception('first'));
- $this->retryer
- ->expects($this->at(1))
- ->method('retry')
- ->with(1, 20)
- ->willThrowException(new Exception('second'));
- $this->retryer
- ->expects($this->at(2))
- ->method('retry')
- ->with(2, 30)
- ->willThrowException(new Exception('third'));
- $this->retryer
- ->expects($this->at(3))
->method('retry')
- ->with(3, 10)
- ->willThrowException(new Exception('four'));
+ ->withConsecutive([0, 10], [1, 20], [2, 30], [3, 10])
+ ->willReturnOnConsecutiveCalls(
+ $this->throwException(new Exception('first')),
+ $this->throwException(new Exception('second')),
+ $this->throwException(new Exception('third')),
+ $this->throwException(new Exception('fourth'))
+ );
$this->expectException('Exception');
- $this->expectExceptionMessage('four');
+ $this->expectExceptionMessage('fourth');
retry([$this->retryer, 'retry'], 4, new ArrayIterator([10, 20, 30]));
}
}
diff --git a/tests/Functional/SelectTest.php b/tests/Functional/SelectTest.php
index 561e9a92..19081d38 100644
--- a/tests/Functional/SelectTest.php
+++ b/tests/Functional/SelectTest.php
@@ -26,7 +26,7 @@ public function getAliases()
];
}
- public function setUp()
+ public function setUp(): void
{
parent::setUp($this->getAliases());
$this->list = ['value', 'wrong', 'value'];
diff --git a/tests/Functional/SomeTest.php b/tests/Functional/SomeTest.php
index 2090118f..397521f2 100644
--- a/tests/Functional/SomeTest.php
+++ b/tests/Functional/SomeTest.php
@@ -17,7 +17,7 @@
class SomeTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->goodArray = ['value', 'wrong'];
diff --git a/tests/Functional/SortTest.php b/tests/Functional/SortTest.php
index 540fe97f..352de342 100644
--- a/tests/Functional/SortTest.php
+++ b/tests/Functional/SortTest.php
@@ -18,7 +18,7 @@
class SortTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['cat', 'bear', 'aardvark'];
diff --git a/tests/Functional/SumTest.php b/tests/Functional/SumTest.php
index 4cd09a7b..9306b7d5 100644
--- a/tests/Functional/SumTest.php
+++ b/tests/Functional/SumTest.php
@@ -29,7 +29,7 @@ class SumTest extends AbstractTestCase
/** @var Traversable */
private $floatIterator;
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->intArray = [1 => 1, 2, "foo" => 3];
diff --git a/tests/Functional/TailTest.php b/tests/Functional/TailTest.php
index 41b2fd46..1638a2a3 100644
--- a/tests/Functional/TailTest.php
+++ b/tests/Functional/TailTest.php
@@ -17,7 +17,7 @@
class TailTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = [1, 2, 3, 4];
diff --git a/tests/Functional/TakeLeftTest.php b/tests/Functional/TakeLeftTest.php
index e8a07741..a65be329 100644
--- a/tests/Functional/TakeLeftTest.php
+++ b/tests/Functional/TakeLeftTest.php
@@ -17,7 +17,7 @@
class TakeLeftTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
diff --git a/tests/Functional/TakeRightTest.php b/tests/Functional/TakeRightTest.php
index 99fa82be..0c7553f5 100644
--- a/tests/Functional/TakeRightTest.php
+++ b/tests/Functional/TakeRightTest.php
@@ -17,7 +17,7 @@
class TakeRightTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
diff --git a/tests/Functional/TapTest.php b/tests/Functional/TapTest.php
index 67f7d465..9b632b7b 100644
--- a/tests/Functional/TapTest.php
+++ b/tests/Functional/TapTest.php
@@ -14,7 +14,7 @@
class TapTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
}
diff --git a/tests/Functional/TrueTest.php b/tests/Functional/TrueTest.php
index cd55297d..08f2fac7 100644
--- a/tests/Functional/TrueTest.php
+++ b/tests/Functional/TrueTest.php
@@ -17,7 +17,7 @@
class TrueTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->trueArray = [true, true, true, true];
diff --git a/tests/Functional/TruthyTest.php b/tests/Functional/TruthyTest.php
index 2fe462f9..76b8f456 100644
--- a/tests/Functional/TruthyTest.php
+++ b/tests/Functional/TruthyTest.php
@@ -16,7 +16,7 @@
class TruthyTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->trueArray = [true, true, 'foo', true, true, 1];
diff --git a/tests/Functional/UniqueTest.php b/tests/Functional/UniqueTest.php
index be02ecf5..b83023be 100644
--- a/tests/Functional/UniqueTest.php
+++ b/tests/Functional/UniqueTest.php
@@ -16,7 +16,7 @@
class UniqueTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value1', 'value2', 'value1', 'value'];
diff --git a/tests/Functional/ZipTest.php b/tests/Functional/ZipTest.php
index fb9c52f2..627529e1 100644
--- a/tests/Functional/ZipTest.php
+++ b/tests/Functional/ZipTest.php
@@ -18,7 +18,7 @@
class ZipTest extends AbstractTestCase
{
- public function setUp()
+ public function setUp(): void
{
parent::setUp();
$this->list = ['value', 'value'];