Arrays.every().phpt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Arrays::every()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Arrays;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. test('', function () {
  10. $arr = [];
  11. $log = [];
  12. $res = Arrays::every(
  13. $arr,
  14. function ($v, $k, $arr) use (&$log) {
  15. $log[] = func_get_args();
  16. return false;
  17. },
  18. );
  19. Assert::true($res);
  20. Assert::same([], $log);
  21. });
  22. test('', function () {
  23. $arr = [];
  24. $log = [];
  25. $res = Arrays::every(
  26. $arr,
  27. function ($v, $k, $arr) use (&$log) {
  28. $log[] = func_get_args();
  29. return true;
  30. },
  31. );
  32. Assert::true($res);
  33. Assert::same([], $log);
  34. });
  35. test('', function () {
  36. $arr = ['a', 'b'];
  37. $log = [];
  38. $res = Arrays::every(
  39. $arr,
  40. function ($v, $k, $arr) use (&$log) {
  41. $log[] = func_get_args();
  42. return false;
  43. },
  44. );
  45. Assert::false($res);
  46. Assert::same([['a', 0, $arr]], $log);
  47. });
  48. test('', function () {
  49. $arr = ['a', 'b'];
  50. $log = [];
  51. $res = Arrays::every(
  52. $arr,
  53. function ($v, $k, $arr) use (&$log) {
  54. $log[] = func_get_args();
  55. return true;
  56. },
  57. );
  58. Assert::true($res);
  59. Assert::same([['a', 0, $arr], ['b', 1, $arr]], $log);
  60. });
  61. test('', function () {
  62. $arr = ['a', 'b'];
  63. $log = [];
  64. $res = Arrays::every(
  65. $arr,
  66. function ($v, $k, $arr) use (&$log) {
  67. $log[] = func_get_args();
  68. return $v === 'a';
  69. },
  70. );
  71. Assert::false($res);
  72. Assert::same([['a', 0, $arr], ['b', 1, $arr]], $log);
  73. });
  74. test('', function () {
  75. $arr = ['x' => 'a', 'y' => 'b'];
  76. $log = [];
  77. $res = Arrays::every(
  78. $arr,
  79. function ($v, $k, $arr) use (&$log) {
  80. $log[] = func_get_args();
  81. return true;
  82. },
  83. );
  84. Assert::true($res);
  85. Assert::same([['a', 'x', $arr], ['b', 'y', $arr]], $log);
  86. });
  87. test('', function () {
  88. $arr = new ArrayIterator(['x' => 'a', 'y' => 'b']);
  89. $log = [];
  90. $res = Arrays::every(
  91. $arr,
  92. function ($v, $k, $arr) use (&$log) {
  93. $log[] = func_get_args();
  94. return true;
  95. },
  96. );
  97. Assert::true($res);
  98. Assert::same([['a', 'x', $arr], ['b', 'y', $arr]], $log);
  99. });