tests for format_milliseconds
This commit is contained in:
parent
e91acbb2c2
commit
6d2c92575d
3 changed files with 29 additions and 21 deletions
|
@ -196,23 +196,3 @@ function create_image_thumb(string $hash, string $type, string $engine = null)
|
|||
$config->get_bool('thumb_upscale', false)
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
const TIME_UNITS = ["s"=>60,"m"=>60,"h"=>24,"d"=>365,"y"=>PHP_INT_MAX];
|
||||
function format_milliseconds(int $input): string
|
||||
{
|
||||
$output = "";
|
||||
|
||||
$remainder = floor($input / 1000);
|
||||
|
||||
foreach (TIME_UNITS as $unit=>$conversion) {
|
||||
$count = $remainder % $conversion;
|
||||
$remainder = floor($remainder / $conversion);
|
||||
if ($count==0&&$remainder<1) {
|
||||
break;
|
||||
}
|
||||
$output = "$count".$unit." ".$output;
|
||||
}
|
||||
|
||||
return trim($output);
|
||||
}
|
||||
|
|
|
@ -593,6 +593,24 @@ function to_shorthand_int(int $int): string
|
|||
}
|
||||
}
|
||||
|
||||
const TIME_UNITS = ["s"=>60,"m"=>60,"h"=>24,"d"=>365,"y"=>PHP_INT_MAX];
|
||||
function format_milliseconds(int $input): string
|
||||
{
|
||||
$output = "";
|
||||
|
||||
$remainder = floor($input / 1000);
|
||||
|
||||
foreach (TIME_UNITS as $unit=>$conversion) {
|
||||
$count = $remainder % $conversion;
|
||||
$remainder = floor($remainder / $conversion);
|
||||
if ($count==0&&$remainder<1) {
|
||||
break;
|
||||
}
|
||||
$output = "$count".$unit." ".$output;
|
||||
}
|
||||
|
||||
return trim($output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn a date into a time, a date, an "X minutes ago...", etc
|
||||
|
|
|
@ -89,17 +89,27 @@ class PolyfillsTest extends \PHPUnit\Framework\TestCase
|
|||
$this->assertEquals(truncate("te...", 2), "te...");
|
||||
}
|
||||
|
||||
public function test_shorthand_int()
|
||||
public function test_to_shorthand_int()
|
||||
{
|
||||
$this->assertEquals(to_shorthand_int(1231231231), "1.1GB");
|
||||
$this->assertEquals(to_shorthand_int(2), "2");
|
||||
}
|
||||
|
||||
public function test_parse_shorthand_int()
|
||||
{
|
||||
$this->assertEquals(parse_shorthand_int("foo"), -1);
|
||||
$this->assertEquals(parse_shorthand_int("32M"), 33554432);
|
||||
$this->assertEquals(parse_shorthand_int("43.4KB"), 44441);
|
||||
$this->assertEquals(parse_shorthand_int("1231231231"), 1231231231);
|
||||
}
|
||||
|
||||
public function test_format_milliseconds()
|
||||
{
|
||||
$this->assertEquals("", format_milliseconds(5));
|
||||
$this->assertEquals("5s", format_milliseconds(5000));
|
||||
$this->assertEquals("1y 213d 16h 53m 20s", format_milliseconds(50000000000));
|
||||
}
|
||||
|
||||
public function test_autodate()
|
||||
{
|
||||
$this->assertEquals(
|
||||
|
|
Reference in a new issue