|
| 1 | +<?php declare(strict_types = 1); |
| 2 | + |
| 3 | +use Tester\Assert; |
| 4 | +use Utilitte\Php\Numbers\NumberFormatter; |
| 5 | + |
| 6 | +require __DIR__ . '/../bootstrap.php'; |
| 7 | + |
| 8 | +// non-fixed |
| 9 | +Assert::same('0.2', NumberFormatter::formatNumber(0.2)); |
| 10 | +Assert::same('10', NumberFormatter::formatNumber(10)); |
| 11 | +Assert::same('-10', NumberFormatter::formatNumber(-10)); |
| 12 | +Assert::same('10', NumberFormatter::formatNumber('10')); |
| 13 | +Assert::same('-10', NumberFormatter::formatNumber('-10')); |
| 14 | +Assert::same('10', NumberFormatter::formatNumber('10', 2)); |
| 15 | +Assert::same('10.25', NumberFormatter::formatNumber('10.254', 2)); |
| 16 | +Assert::same('10.26', NumberFormatter::formatNumber('10.255', 2)); |
| 17 | + |
| 18 | +// fixed |
| 19 | +Assert::same('0.2000', NumberFormatter::formatNumber(0.2, fixed: true)); |
| 20 | +Assert::same('0.20', NumberFormatter::formatNumber(0.2, 2, true)); |
| 21 | + |
| 22 | +// invalid |
| 23 | +Assert::null(NumberFormatter::formatNumber('foo')); |
| 24 | +Assert::null(NumberFormatter::formatNumber(INF)); |
| 25 | +Assert::null(NumberFormatter::formatNumber(NAN)); |
| 26 | +Assert::null(NumberFormatter::formatNumber('0,2')); |
| 27 | +Assert::null(NumberFormatter::formatNumber('a0.2')); |
| 28 | + |
| 29 | +// percentage |
| 30 | +Assert::same('+0.20%',NumberFormatter::formatPercentage(0.2)); |
| 31 | +Assert::same('+100.00%',NumberFormatter::formatPercentage(100)); |
| 32 | +Assert::same('100.00%',NumberFormatter::formatPercentage(100, sign: false)); |
| 33 | +Assert::same('+100%',NumberFormatter::formatPercentage(100, fixed: false)); |
| 34 | +Assert::same('-20.00%',NumberFormatter::formatPercentage(-20)); |
| 35 | + |
| 36 | +// formatShort |
| 37 | +Assert::same('500', NumberFormatter::formatShort(500)); |
| 38 | +Assert::same('1K', NumberFormatter::formatShort(1000)); |
| 39 | +Assert::same('20K', NumberFormatter::formatShort(20000)); |
| 40 | +Assert::same('1.3K', NumberFormatter::formatShort(1254, 1)); |
| 41 | +Assert::same('1.254K', NumberFormatter::formatShort(1254, 3)); |
| 42 | +Assert::same('1M', NumberFormatter::formatShort(1000*1000)); |
| 43 | + |
| 44 | +// formatBytes |
| 45 | +Assert::same('1kB', NumberFormatter::formatBytes(1024)); |
| 46 | +Assert::same('1MB', NumberFormatter::formatBytes(1024 * 1024)); |
| 47 | +Assert::same('1GB', NumberFormatter::formatBytes(1024 * 1024 * 1024)); |
| 48 | +Assert::same('1TB', NumberFormatter::formatBytes(1024 * 1024 * 1024 * 1024)); |
| 49 | +Assert::same('1PB', NumberFormatter::formatBytes(1024 * 1024 * 1024 * 1024 * 1024)); |
| 50 | +Assert::same('2.1PB', NumberFormatter::formatBytes(1024 * 1024 * 1024 * 1024 * 1024 * 2.1)); |
| 51 | +Assert::same('2.234PB', NumberFormatter::formatBytes(1024 * 1024 * 1024 * 1024 * 1024 * 2.234)); |
0 commit comments