Skip to content

Commit 04e50fe

Browse files
committed
Add array_reduce comparison to array_(sum|product) tests
1 parent b01a064 commit 04e50fe

8 files changed

+90
-0
lines changed

ext/standard/tests/array/array_product_empty_array.phpt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,17 @@ Test array_product() function with empty array
33
--FILE--
44
<?php
55
$input = [];
6+
7+
echo "array_product() version:\n";
68
var_dump(array_product($input));
9+
10+
echo "array_reduce() version:\n";
11+
var_dump(array_reduce($input, fn($carry, $value) => $carry * $value, 1));
712
?>
813
--EXPECTF--
14+
array_product() version:
15+
916
Deprecated: array_product(): Passing an empty array is deprecated in %s on line %d
1017
int(1)
18+
array_reduce() version:
19+
int(1)

ext/standard/tests/array/array_product_objects_operation_no_cast.phpt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,20 @@ zend_test
55
--FILE--
66
<?php
77
$input = [new DoOperationNoCast(25), new DoOperationNoCast(6), new DoOperationNoCast(10)];
8+
9+
echo "array_product() version:\n";
810
var_dump(array_product($input));
11+
12+
echo "array_reduce() version:\n";
13+
var_dump(array_reduce($input, fn($carry, $value) => $carry * $value, 1));
914
?>
1015
--EXPECTF--
16+
array_product() version:
17+
1118
Warning: Object of class DoOperationNoCast could not be converted to int|float in %s on line %d
1219
int(1)
20+
array_reduce() version:
21+
object(DoOperationNoCast)#5 (1) {
22+
["val":"DoOperationNoCast":private]=>
23+
int(1500)
24+
}

ext/standard/tests/array/array_product_variation5.phpt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,21 @@ Test array_product() function: ressources in array
33
--FILE--
44
<?php
55
$input = [10, STDERR /* Should get casted to 3 as an integer */];
6+
7+
echo "array_product() version:\n";
68
var_dump(array_product($input));
9+
10+
echo "array_reduce() version:\n";
11+
try {
12+
var_dump(array_reduce($input, fn($carry, $value) => $carry * $value, 1));
13+
} catch (TypeError $e) {
14+
echo $e->getMessage();
15+
}
716
?>
817
--EXPECTF--
18+
array_product() version:
19+
920
Warning: array_product(): Multiplication is not supported on type resource in %s on line %d
1021
int(30)
22+
array_reduce() version:
23+
Unsupported operand types: int * resource

ext/standard/tests/array/array_product_variation6.phpt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,18 @@ gmp
55
--FILE--
66
<?php
77
$input = [gmp_init(25), gmp_init(6)];
8+
9+
echo "array_product() version:\n";
810
var_dump(array_product($input));
11+
12+
echo "array_reduce() version:\n";
13+
var_dump(array_reduce($input, fn($carry, $value) => $carry * $value, 1));
914
?>
1015
--EXPECT--
16+
array_product() version:
1117
int(150)
18+
array_reduce() version:
19+
object(GMP)#5 (1) {
20+
["num"]=>
21+
string(3) "150"
22+
}

ext/standard/tests/array/array_sum_empty_array.phpt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,17 @@ Test array_sum() function with empty array
33
--FILE--
44
<?php
55
$input = [];
6+
7+
echo "array_sum() version:\n";
68
var_dump(array_sum($input));
9+
10+
echo "array_reduce() version:\n";
11+
var_dump(array_reduce($input, fn($carry, $value) => $carry + $value, 0));
712
?>
813
--EXPECTF--
14+
array_sum() version:
15+
916
Deprecated: array_sum(): Passing an empty array is deprecated in %s on line %d
1017
int(0)
18+
array_reduce() version:
19+
int(0)

ext/standard/tests/array/array_sum_objects_operation_no_cast.phpt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,20 @@ zend_test
55
--FILE--
66
<?php
77
$input = [new DoOperationNoCast(25), new DoOperationNoCast(6)];
8+
9+
echo "array_sum() version:\n";
810
var_dump(array_sum($input));
11+
12+
echo "array_reduce() version:\n";
13+
var_dump(array_reduce($input, fn($carry, $value) => $carry + $value, 0));
914
?>
1015
--EXPECTF--
16+
array_sum() version:
17+
1118
Warning: Object of class DoOperationNoCast could not be converted to int|float in %s on line %d
1219
int(0)
20+
array_reduce() version:
21+
object(DoOperationNoCast)#5 (1) {
22+
["val":"DoOperationNoCast":private]=>
23+
int(31)
24+
}

ext/standard/tests/array/array_sum_variation8.phpt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,21 @@ Test array_sum() function: ressources in array
33
--FILE--
44
<?php
55
$input = [10, STDERR /* Should get casted to 3 as an integer */];
6+
7+
echo "array_sum() version:\n";
68
var_dump(array_sum($input));
9+
10+
echo "array_reduce() version:\n";
11+
try {
12+
var_dump(array_reduce($input, fn($carry, $value) => $carry + $value, 0));
13+
} catch (TypeError $e) {
14+
echo $e->getMessage();
15+
}
716
?>
817
--EXPECTF--
18+
array_sum() version:
19+
920
Warning: array_sum(): Addition is not supported on type resource in %s on line %d
1021
int(13)
22+
array_reduce() version:
23+
Unsupported operand types: int + resource

ext/standard/tests/array/array_sum_variation9.phpt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,18 @@ gmp
55
--FILE--
66
<?php
77
$input = [gmp_init(25), gmp_init(6)];
8+
9+
echo "array_sum() version:\n";
810
var_dump(array_sum($input));
11+
12+
echo "array_reduce() version:\n";
13+
var_dump(array_reduce($input, fn($carry, $value) => $carry + $value, 0));
914
?>
1015
--EXPECT--
16+
array_sum() version:
1117
int(31)
18+
array_reduce() version:
19+
object(GMP)#5 (1) {
20+
["num"]=>
21+
string(2) "31"
22+
}

0 commit comments

Comments
 (0)