ArrHelperTest.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php declare(strict_types=1);
  2. /**
  3. * This file is part of toolkit/stdlib.
  4. *
  5. * @author https://github.com/inhere
  6. * @link https://github.com/php-toolkit/stdlib
  7. * @license MIT
  8. */
  9. namespace Toolkit\StdlibTest\Arr;
  10. use PHPUnit\Framework\TestCase;
  11. use Toolkit\Stdlib\Arr;
  12. use function array_keys;
  13. /**
  14. * class ArrHelperTest
  15. */
  16. class ArrHelperTest extends TestCase
  17. {
  18. public function testIsList(): void
  19. {
  20. $this->assertTrue(Arr::isList(['a', 'b']));
  21. $this->assertFalse(Arr::isList(['a' => 'v0', 'b']));
  22. $this->assertTrue(Arr::isAssoc(['a' => 'v0', 'b']));
  23. }
  24. public function testToStringV2(): void
  25. {
  26. $this->assertEquals('[ab, 234]', Arr::toStringV2(['ab', 234]));
  27. $this->assertEquals('{k0: ab, k1: 234}', Arr::toStringV2(['k0' => 'ab', 'k1' => 234]));
  28. }
  29. public function testGetKeyMaxWidth(): void
  30. {
  31. $data = [
  32. 'key1' => 'value1',
  33. 'key2-test' => 'value2',
  34. ];
  35. $this->assertSame(9, Arr::getKeyMaxWidth($data));
  36. $this->assertSame(9, Arr::getKeyMaxWidth($data, false));
  37. $data = [
  38. 'key1' => 'value1',
  39. '34430' => 'value2'
  40. ];
  41. $this->assertSame(4, Arr::getKeyMaxWidth($data));
  42. $this->assertSame(5, Arr::getKeyMaxWidth($data, false));
  43. $this->assertSame(5, Arr::getMaxWidth(array_keys($data), false));
  44. $data = [
  45. 'key1' => 'value1',
  46. 34430 => 'value2'
  47. ];
  48. $this->assertSame(4, Arr::getKeyMaxWidth($data));
  49. $this->assertSame(5, Arr::getKeyMaxWidth($data, false));
  50. $this->assertSame(5, Arr::getMaxWidth(array_keys($data), false));
  51. }
  52. }