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));
 }