return FMT("{:.1f} GB", size / ((double)(1000 * 1000 * 1000)));
} else if (size >= 1000 * 1000) {
return FMT("{:.1f} MB", size / ((double)(1000 * 1000)));
- } else {
+ } else if (size >= 1000) {
return FMT("{:.1f} kB", size / 1000.0);
+ } else if (size == 1) {
+ return "1 byte";
+ } else {
+ return FMT("{} bytes", size);
}
}
TEST_CASE("Util::format_human_readable_size")
{
- CHECK(Util::format_human_readable_size(0) == "0.0 kB");
- CHECK(Util::format_human_readable_size(1) == "0.0 kB");
- CHECK(Util::format_human_readable_size(49) == "0.0 kB");
- CHECK(Util::format_human_readable_size(51) == "0.1 kB");
- CHECK(Util::format_human_readable_size(949) == "0.9 kB");
- CHECK(Util::format_human_readable_size(951) == "1.0 kB");
+ CHECK(Util::format_human_readable_size(0) == "0 bytes");
+ CHECK(Util::format_human_readable_size(1) == "1 byte");
+ CHECK(Util::format_human_readable_size(42) == "42 bytes");
+ CHECK(Util::format_human_readable_size(1949) == "1.9 kB");
+ CHECK(Util::format_human_readable_size(1951) == "2.0 kB");
CHECK(Util::format_human_readable_size(499.7 * 1000) == "499.7 kB");
CHECK(Util::format_human_readable_size(1000 * 1000) == "1.0 MB");
CHECK(Util::format_human_readable_size(1234 * 1000) == "1.2 MB");