public function testNumberFormatting() { $this->assertEquals("1", WMUtility::formatNumberWithMetricPrefix(1)); $this->assertEquals("300", WMUtility::formatNumberWithMetricPrefix(300)); $this->assertEquals("1K", WMUtility::formatNumberWithMetricPrefix(1000)); $this->assertEquals("10K", WMUtility::formatNumberWithMetricPrefix(10000)); $this->assertEquals("500K", WMUtility::formatNumberWithMetricPrefix(500000)); $this->assertEquals("5M", WMUtility::formatNumberWithMetricPrefix(5000000)); $this->assertEquals("500M", WMUtility::formatNumberWithMetricPrefix(500000000)); $this->assertEquals("5G", WMUtility::formatNumberWithMetricPrefix(5000000000)); $this->assertEquals("500G", WMUtility::formatNumberWithMetricPrefix(500000000000)); $this->assertEquals("50T", WMUtility::formatNumberWithMetricPrefix(50000000000000)); $this->assertEquals("1.5K", WMUtility::formatNumberWithMetricPrefix(1500)); // multiple levels of precision $this->assertEquals("1.6K", WMUtility::formatNumberWithMetricPrefix(1625)); $this->assertEquals("1.63K", WMUtility::formatNumberWithMetricPrefix(1625, 1000, 2)); // base-2 vs base-10 $this->assertEquals("2K", WMUtility::formatNumberWithMetricPrefix(2048, 1024, 2)); $this->assertEquals("2.05K", WMUtility::formatNumberWithMetricPrefix(2048, 1000, 2)); // fractional formatting... $this->assertEquals("1m", WMUtility::formatNumberWithMetricPrefix(0.001, 1000, 2)); $this->assertEquals("1u", WMUtility::formatNumberWithMetricPrefix(1.0E-6, 1000, 2)); $this->assertEquals("1n", WMUtility::formatNumberWithMetricPrefix(1.0E-9, 1000, 2)); // negatives $this->assertEquals("-2K", WMUtility::formatNumberWithMetricPrefix(-2048, 1024, 2)); $this->assertEquals("-2", WMUtility::formatNumber(-2)); }