]> granicus.if.org Git - neomutt/commitdiff
test: improve test_mutt_str_pretty_size()
authorRichard Russon <rich@flatcap.org>
Sun, 26 May 2019 15:02:23 +0000 (16:02 +0100)
committerRichard Russon <rich@flatcap.org>
Sun, 26 May 2019 16:18:13 +0000 (17:18 +0100)
mutt/string.c
test/string/mutt_str_pretty_size.c

index e3e40870b011d20bb3a99babd2258f0d0db14a79..985da4df54a7e2c737bcb13b111fea0299ffdb98 100644 (file)
@@ -1050,7 +1050,7 @@ const char *mutt_str_find_word(const char *src)
  */
 void mutt_str_pretty_size(char *buf, size_t buflen, size_t num)
 {
-  if (!buf)
+  if (!buf || (buflen == 0))
     return;
 
   if (num < 1000)
index 1b73e1c62d89d6971bdaee9619120374ce7329d7..0eac5fa5b5b7c1d6ba1e2d7169457c19248b49ba 100644 (file)
 #include "config.h"
 #include "mutt/mutt.h"
 
+struct SizeTest
+{
+  size_t num;
+  const char *expected;
+};
+
 void test_mutt_str_pretty_size(void)
 {
   // void mutt_str_pretty_size(char *buf, size_t buflen, size_t num);
@@ -33,4 +39,1271 @@ void test_mutt_str_pretty_size(void)
     mutt_str_pretty_size(NULL, 10, 1234);
     TEST_CHECK_(1, "mutt_str_pretty_size(NULL, 10, 1234)");
   }
+
+  // clang-format off
+  struct SizeTest word_tests[] =
+  {
+    { 0,   "0B"   },
+    { 1,   "1B"   },
+    { 9,   "9B"   },
+    { 10,  "10B"  },
+    { 99,  "99B"  },
+    { 100, "100B" },
+    { 999, "999B" },
+  };
+  // clang-format on
+
+  {
+    char buf[32];
+
+    for (size_t i = 0; i < mutt_array_size(word_tests); i++)
+    {
+      memset(buf, 0, sizeof(buf));
+      struct SizeTest *t = &word_tests[i];
+      TEST_CASE_("%ld", t->num);
+      mutt_str_pretty_size(buf, sizeof(buf), t->num);
+      TEST_CHECK(strcmp(buf, t->expected) == 0);
+    }
+  }
+
+  // clang-format off
+  struct SizeTest transition_tests[] =
+  {
+    { 1000,     "1.0K" },
+    { 1076,     "1.1K" },
+    { 1178,     "1.2K" },
+    { 1281,     "1.3K" },
+    { 1383,     "1.4K" },
+    { 1485,     "1.5K" },
+    { 1588,     "1.6K" },
+    { 1690,     "1.7K" },
+    { 1792,     "1.8K" },
+    { 1895,     "1.9K" },
+    { 1997,     "2.0K" },
+    { 2100,     "2.1K" },
+    { 2202,     "2.2K" },
+    { 2305,     "2.3K" },
+    { 2407,     "2.4K" },
+    { 2509,     "2.5K" },
+    { 2612,     "2.6K" },
+    { 2714,     "2.7K" },
+    { 2816,     "2.8K" },
+    { 2919,     "2.9K" },
+    { 3021,     "3.0K" },
+    { 3124,     "3.1K" },
+    { 3226,     "3.2K" },
+    { 3329,     "3.3K" },
+    { 3431,     "3.4K" },
+    { 3533,     "3.5K" },
+    { 3636,     "3.6K" },
+    { 3738,     "3.7K" },
+    { 3840,     "3.8K" },
+    { 3943,     "3.9K" },
+    { 4045,     "4.0K" },
+    { 4148,     "4.1K" },
+    { 4250,     "4.2K" },
+    { 4353,     "4.3K" },
+    { 4455,     "4.4K" },
+    { 4557,     "4.5K" },
+    { 4660,     "4.6K" },
+    { 4762,     "4.7K" },
+    { 4864,     "4.8K" },
+    { 4967,     "4.9K" },
+    { 5069,     "5.0K" },
+    { 5172,     "5.1K" },
+    { 5274,     "5.2K" },
+    { 5377,     "5.3K" },
+    { 5479,     "5.4K" },
+    { 5581,     "5.5K" },
+    { 5684,     "5.6K" },
+    { 5786,     "5.7K" },
+    { 5888,     "5.8K" },
+    { 5991,     "5.9K" },
+    { 6093,     "6.0K" },
+    { 6196,     "6.1K" },
+    { 6298,     "6.2K" },
+    { 6401,     "6.3K" },
+    { 6503,     "6.4K" },
+    { 6605,     "6.5K" },
+    { 6708,     "6.6K" },
+    { 6810,     "6.7K" },
+    { 6912,     "6.8K" },
+    { 7015,     "6.9K" },
+    { 7117,     "7.0K" },
+    { 7220,     "7.1K" },
+    { 7322,     "7.2K" },
+    { 7425,     "7.3K" },
+    { 7527,     "7.4K" },
+    { 7629,     "7.5K" },
+    { 7732,     "7.6K" },
+    { 7834,     "7.7K" },
+    { 7936,     "7.8K" },
+    { 8039,     "7.9K" },
+    { 8141,     "8.0K" },
+    { 8244,     "8.1K" },
+    { 8346,     "8.2K" },
+    { 8449,     "8.3K" },
+    { 8551,     "8.4K" },
+    { 8653,     "8.5K" },
+    { 8756,     "8.6K" },
+    { 8858,     "8.7K" },
+    { 8960,     "8.8K" },
+    { 9063,     "8.9K" },
+    { 9165,     "9.0K" },
+    { 9268,     "9.1K" },
+    { 9370,     "9.2K" },
+    { 9473,     "9.3K" },
+    { 9575,     "9.4K" },
+    { 9677,     "9.5K" },
+    { 9780,     "9.6K" },
+    { 9882,     "9.7K" },
+    { 9984,     "9.8K" },
+    { 10087,    "9.9K" },
+    { 10189,    "10K"  },
+    { 11213,    "11K"  },
+    { 12237,    "12K"  },
+    { 13261,    "13K"  },
+    { 14285,    "14K"  },
+    { 15309,    "15K"  },
+    { 16333,    "16K"  },
+    { 17357,    "17K"  },
+    { 18381,    "18K"  },
+    { 19405,    "19K"  },
+    { 20429,    "20K"  },
+    { 21453,    "21K"  },
+    { 22477,    "22K"  },
+    { 23501,    "23K"  },
+    { 24525,    "24K"  },
+    { 25549,    "25K"  },
+    { 26573,    "26K"  },
+    { 27597,    "27K"  },
+    { 28621,    "28K"  },
+    { 29645,    "29K"  },
+    { 30669,    "30K"  },
+    { 31693,    "31K"  },
+    { 32717,    "32K"  },
+    { 33741,    "33K"  },
+    { 34765,    "34K"  },
+    { 35789,    "35K"  },
+    { 36813,    "36K"  },
+    { 37837,    "37K"  },
+    { 38861,    "38K"  },
+    { 39885,    "39K"  },
+    { 40909,    "40K"  },
+    { 41933,    "41K"  },
+    { 42957,    "42K"  },
+    { 43981,    "43K"  },
+    { 45005,    "44K"  },
+    { 46029,    "45K"  },
+    { 47053,    "46K"  },
+    { 48077,    "47K"  },
+    { 49101,    "48K"  },
+    { 50125,    "49K"  },
+    { 51149,    "50K"  },
+    { 52173,    "51K"  },
+    { 53197,    "52K"  },
+    { 54221,    "53K"  },
+    { 55245,    "54K"  },
+    { 56269,    "55K"  },
+    { 57293,    "56K"  },
+    { 58317,    "57K"  },
+    { 59341,    "58K"  },
+    { 60365,    "59K"  },
+    { 61389,    "60K"  },
+    { 62413,    "61K"  },
+    { 63437,    "62K"  },
+    { 64461,    "63K"  },
+    { 65485,    "64K"  },
+    { 66509,    "65K"  },
+    { 67533,    "66K"  },
+    { 68557,    "67K"  },
+    { 69581,    "68K"  },
+    { 70605,    "69K"  },
+    { 71629,    "70K"  },
+    { 72653,    "71K"  },
+    { 73677,    "72K"  },
+    { 74701,    "73K"  },
+    { 75725,    "74K"  },
+    { 76749,    "75K"  },
+    { 77773,    "76K"  },
+    { 78797,    "77K"  },
+    { 79821,    "78K"  },
+    { 80845,    "79K"  },
+    { 81869,    "80K"  },
+    { 82893,    "81K"  },
+    { 83917,    "82K"  },
+    { 84941,    "83K"  },
+    { 85965,    "84K"  },
+    { 86989,    "85K"  },
+    { 88013,    "86K"  },
+    { 89037,    "87K"  },
+    { 90061,    "88K"  },
+    { 91085,    "89K"  },
+    { 92109,    "90K"  },
+    { 93133,    "91K"  },
+    { 94157,    "92K"  },
+    { 95181,    "93K"  },
+    { 96205,    "94K"  },
+    { 97229,    "95K"  },
+    { 98253,    "96K"  },
+    { 99277,    "97K"  },
+    { 100301,   "98K"  },
+    { 101325,   "99K"  },
+    { 102349,   "100K" },
+    { 103373,   "101K" },
+    { 104397,   "102K" },
+    { 105421,   "103K" },
+    { 106445,   "104K" },
+    { 107469,   "105K" },
+    { 108493,   "106K" },
+    { 109517,   "107K" },
+    { 110541,   "108K" },
+    { 111565,   "109K" },
+    { 112589,   "110K" },
+    { 113613,   "111K" },
+    { 114637,   "112K" },
+    { 115661,   "113K" },
+    { 116685,   "114K" },
+    { 117709,   "115K" },
+    { 118733,   "116K" },
+    { 119757,   "117K" },
+    { 120781,   "118K" },
+    { 121805,   "119K" },
+    { 122829,   "120K" },
+    { 123853,   "121K" },
+    { 124877,   "122K" },
+    { 125901,   "123K" },
+    { 126925,   "124K" },
+    { 127949,   "125K" },
+    { 128973,   "126K" },
+    { 129997,   "127K" },
+    { 131021,   "128K" },
+    { 132045,   "129K" },
+    { 133069,   "130K" },
+    { 134093,   "131K" },
+    { 135117,   "132K" },
+    { 136141,   "133K" },
+    { 137165,   "134K" },
+    { 138189,   "135K" },
+    { 139213,   "136K" },
+    { 140237,   "137K" },
+    { 141261,   "138K" },
+    { 142285,   "139K" },
+    { 143309,   "140K" },
+    { 144333,   "141K" },
+    { 145357,   "142K" },
+    { 146381,   "143K" },
+    { 147405,   "144K" },
+    { 148429,   "145K" },
+    { 149453,   "146K" },
+    { 150477,   "147K" },
+    { 151501,   "148K" },
+    { 152525,   "149K" },
+    { 153549,   "150K" },
+    { 154573,   "151K" },
+    { 155597,   "152K" },
+    { 156621,   "153K" },
+    { 157645,   "154K" },
+    { 158669,   "155K" },
+    { 159693,   "156K" },
+    { 160717,   "157K" },
+    { 161741,   "158K" },
+    { 162765,   "159K" },
+    { 163789,   "160K" },
+    { 164813,   "161K" },
+    { 165837,   "162K" },
+    { 166861,   "163K" },
+    { 167885,   "164K" },
+    { 168909,   "165K" },
+    { 169933,   "166K" },
+    { 170957,   "167K" },
+    { 171981,   "168K" },
+    { 173005,   "169K" },
+    { 174029,   "170K" },
+    { 175053,   "171K" },
+    { 176077,   "172K" },
+    { 177101,   "173K" },
+    { 178125,   "174K" },
+    { 179149,   "175K" },
+    { 180173,   "176K" },
+    { 181197,   "177K" },
+    { 182221,   "178K" },
+    { 183245,   "179K" },
+    { 184269,   "180K" },
+    { 185293,   "181K" },
+    { 186317,   "182K" },
+    { 187341,   "183K" },
+    { 188365,   "184K" },
+    { 189389,   "185K" },
+    { 190413,   "186K" },
+    { 191437,   "187K" },
+    { 192461,   "188K" },
+    { 193485,   "189K" },
+    { 194509,   "190K" },
+    { 195533,   "191K" },
+    { 196557,   "192K" },
+    { 197581,   "193K" },
+    { 198605,   "194K" },
+    { 199629,   "195K" },
+    { 200653,   "196K" },
+    { 201677,   "197K" },
+    { 202701,   "198K" },
+    { 203725,   "199K" },
+    { 204749,   "200K" },
+    { 205773,   "201K" },
+    { 206797,   "202K" },
+    { 207821,   "203K" },
+    { 208845,   "204K" },
+    { 209869,   "205K" },
+    { 210893,   "206K" },
+    { 211917,   "207K" },
+    { 212941,   "208K" },
+    { 213965,   "209K" },
+    { 214989,   "210K" },
+    { 216013,   "211K" },
+    { 217037,   "212K" },
+    { 218061,   "213K" },
+    { 219085,   "214K" },
+    { 220109,   "215K" },
+    { 221133,   "216K" },
+    { 222157,   "217K" },
+    { 223181,   "218K" },
+    { 224205,   "219K" },
+    { 225229,   "220K" },
+    { 226253,   "221K" },
+    { 227277,   "222K" },
+    { 228301,   "223K" },
+    { 229325,   "224K" },
+    { 230349,   "225K" },
+    { 231373,   "226K" },
+    { 232397,   "227K" },
+    { 233421,   "228K" },
+    { 234445,   "229K" },
+    { 235469,   "230K" },
+    { 236493,   "231K" },
+    { 237517,   "232K" },
+    { 238541,   "233K" },
+    { 239565,   "234K" },
+    { 240589,   "235K" },
+    { 241613,   "236K" },
+    { 242637,   "237K" },
+    { 243661,   "238K" },
+    { 244685,   "239K" },
+    { 245709,   "240K" },
+    { 246733,   "241K" },
+    { 247757,   "242K" },
+    { 248781,   "243K" },
+    { 249805,   "244K" },
+    { 250829,   "245K" },
+    { 251853,   "246K" },
+    { 252877,   "247K" },
+    { 253901,   "248K" },
+    { 254925,   "249K" },
+    { 255949,   "250K" },
+    { 256973,   "251K" },
+    { 257997,   "252K" },
+    { 259021,   "253K" },
+    { 260045,   "254K" },
+    { 261069,   "255K" },
+    { 262093,   "256K" },
+    { 263117,   "257K" },
+    { 264141,   "258K" },
+    { 265165,   "259K" },
+    { 266189,   "260K" },
+    { 267213,   "261K" },
+    { 268237,   "262K" },
+    { 269261,   "263K" },
+    { 270285,   "264K" },
+    { 271309,   "265K" },
+    { 272333,   "266K" },
+    { 273357,   "267K" },
+    { 274381,   "268K" },
+    { 275405,   "269K" },
+    { 276429,   "270K" },
+    { 277453,   "271K" },
+    { 278477,   "272K" },
+    { 279501,   "273K" },
+    { 280525,   "274K" },
+    { 281549,   "275K" },
+    { 282573,   "276K" },
+    { 283597,   "277K" },
+    { 284621,   "278K" },
+    { 285645,   "279K" },
+    { 286669,   "280K" },
+    { 287693,   "281K" },
+    { 288717,   "282K" },
+    { 289741,   "283K" },
+    { 290765,   "284K" },
+    { 291789,   "285K" },
+    { 292813,   "286K" },
+    { 293837,   "287K" },
+    { 294861,   "288K" },
+    { 295885,   "289K" },
+    { 296909,   "290K" },
+    { 297933,   "291K" },
+    { 298957,   "292K" },
+    { 299981,   "293K" },
+    { 301005,   "294K" },
+    { 302029,   "295K" },
+    { 303053,   "296K" },
+    { 304077,   "297K" },
+    { 305101,   "298K" },
+    { 306125,   "299K" },
+    { 307149,   "300K" },
+    { 308173,   "301K" },
+    { 309197,   "302K" },
+    { 310221,   "303K" },
+    { 311245,   "304K" },
+    { 312269,   "305K" },
+    { 313293,   "306K" },
+    { 314317,   "307K" },
+    { 315341,   "308K" },
+    { 316365,   "309K" },
+    { 317389,   "310K" },
+    { 318413,   "311K" },
+    { 319437,   "312K" },
+    { 320461,   "313K" },
+    { 321485,   "314K" },
+    { 322509,   "315K" },
+    { 323533,   "316K" },
+    { 324557,   "317K" },
+    { 325581,   "318K" },
+    { 326605,   "319K" },
+    { 327629,   "320K" },
+    { 328653,   "321K" },
+    { 329677,   "322K" },
+    { 330701,   "323K" },
+    { 331725,   "324K" },
+    { 332749,   "325K" },
+    { 333773,   "326K" },
+    { 334797,   "327K" },
+    { 335821,   "328K" },
+    { 336845,   "329K" },
+    { 337869,   "330K" },
+    { 338893,   "331K" },
+    { 339917,   "332K" },
+    { 340941,   "333K" },
+    { 341965,   "334K" },
+    { 342989,   "335K" },
+    { 344013,   "336K" },
+    { 345037,   "337K" },
+    { 346061,   "338K" },
+    { 347085,   "339K" },
+    { 348109,   "340K" },
+    { 349133,   "341K" },
+    { 350157,   "342K" },
+    { 351181,   "343K" },
+    { 352205,   "344K" },
+    { 353229,   "345K" },
+    { 354253,   "346K" },
+    { 355277,   "347K" },
+    { 356301,   "348K" },
+    { 357325,   "349K" },
+    { 358349,   "350K" },
+    { 359373,   "351K" },
+    { 360397,   "352K" },
+    { 361421,   "353K" },
+    { 362445,   "354K" },
+    { 363469,   "355K" },
+    { 364493,   "356K" },
+    { 365517,   "357K" },
+    { 366541,   "358K" },
+    { 367565,   "359K" },
+    { 368589,   "360K" },
+    { 369613,   "361K" },
+    { 370637,   "362K" },
+    { 371661,   "363K" },
+    { 372685,   "364K" },
+    { 373709,   "365K" },
+    { 374733,   "366K" },
+    { 375757,   "367K" },
+    { 376781,   "368K" },
+    { 377805,   "369K" },
+    { 378829,   "370K" },
+    { 379853,   "371K" },
+    { 380877,   "372K" },
+    { 381901,   "373K" },
+    { 382925,   "374K" },
+    { 383949,   "375K" },
+    { 384973,   "376K" },
+    { 385997,   "377K" },
+    { 387021,   "378K" },
+    { 388045,   "379K" },
+    { 389069,   "380K" },
+    { 390093,   "381K" },
+    { 391117,   "382K" },
+    { 392141,   "383K" },
+    { 393165,   "384K" },
+    { 394189,   "385K" },
+    { 395213,   "386K" },
+    { 396237,   "387K" },
+    { 397261,   "388K" },
+    { 398285,   "389K" },
+    { 399309,   "390K" },
+    { 400333,   "391K" },
+    { 401357,   "392K" },
+    { 402381,   "393K" },
+    { 403405,   "394K" },
+    { 404429,   "395K" },
+    { 405453,   "396K" },
+    { 406477,   "397K" },
+    { 407501,   "398K" },
+    { 408525,   "399K" },
+    { 409549,   "400K" },
+    { 410573,   "401K" },
+    { 411597,   "402K" },
+    { 412621,   "403K" },
+    { 413645,   "404K" },
+    { 414669,   "405K" },
+    { 415693,   "406K" },
+    { 416717,   "407K" },
+    { 417741,   "408K" },
+    { 418765,   "409K" },
+    { 419789,   "410K" },
+    { 420813,   "411K" },
+    { 421837,   "412K" },
+    { 422861,   "413K" },
+    { 423885,   "414K" },
+    { 424909,   "415K" },
+    { 425933,   "416K" },
+    { 426957,   "417K" },
+    { 427981,   "418K" },
+    { 429005,   "419K" },
+    { 430029,   "420K" },
+    { 431053,   "421K" },
+    { 432077,   "422K" },
+    { 433101,   "423K" },
+    { 434125,   "424K" },
+    { 435149,   "425K" },
+    { 436173,   "426K" },
+    { 437197,   "427K" },
+    { 438221,   "428K" },
+    { 439245,   "429K" },
+    { 440269,   "430K" },
+    { 441293,   "431K" },
+    { 442317,   "432K" },
+    { 443341,   "433K" },
+    { 444365,   "434K" },
+    { 445389,   "435K" },
+    { 446413,   "436K" },
+    { 447437,   "437K" },
+    { 448461,   "438K" },
+    { 449485,   "439K" },
+    { 450509,   "440K" },
+    { 451533,   "441K" },
+    { 452557,   "442K" },
+    { 453581,   "443K" },
+    { 454605,   "444K" },
+    { 455629,   "445K" },
+    { 456653,   "446K" },
+    { 457677,   "447K" },
+    { 458701,   "448K" },
+    { 459725,   "449K" },
+    { 460749,   "450K" },
+    { 461773,   "451K" },
+    { 462797,   "452K" },
+    { 463821,   "453K" },
+    { 464845,   "454K" },
+    { 465869,   "455K" },
+    { 466893,   "456K" },
+    { 467917,   "457K" },
+    { 468941,   "458K" },
+    { 469965,   "459K" },
+    { 470989,   "460K" },
+    { 472013,   "461K" },
+    { 473037,   "462K" },
+    { 474061,   "463K" },
+    { 475085,   "464K" },
+    { 476109,   "465K" },
+    { 477133,   "466K" },
+    { 478157,   "467K" },
+    { 479181,   "468K" },
+    { 480205,   "469K" },
+    { 481229,   "470K" },
+    { 482253,   "471K" },
+    { 483277,   "472K" },
+    { 484301,   "473K" },
+    { 485325,   "474K" },
+    { 486349,   "475K" },
+    { 487373,   "476K" },
+    { 488397,   "477K" },
+    { 489421,   "478K" },
+    { 490445,   "479K" },
+    { 491469,   "480K" },
+    { 492493,   "481K" },
+    { 493517,   "482K" },
+    { 494541,   "483K" },
+    { 495565,   "484K" },
+    { 496589,   "485K" },
+    { 497613,   "486K" },
+    { 498637,   "487K" },
+    { 499661,   "488K" },
+    { 500685,   "489K" },
+    { 501709,   "490K" },
+    { 502733,   "491K" },
+    { 503757,   "492K" },
+    { 504781,   "493K" },
+    { 505805,   "494K" },
+    { 506829,   "495K" },
+    { 507853,   "496K" },
+    { 508877,   "497K" },
+    { 509901,   "498K" },
+    { 510925,   "499K" },
+    { 511949,   "500K" },
+    { 512973,   "501K" },
+    { 513997,   "502K" },
+    { 515021,   "503K" },
+    { 516045,   "504K" },
+    { 517069,   "505K" },
+    { 518093,   "506K" },
+    { 519117,   "507K" },
+    { 520141,   "508K" },
+    { 521165,   "509K" },
+    { 522189,   "510K" },
+    { 523213,   "511K" },
+    { 524237,   "512K" },
+    { 525261,   "513K" },
+    { 526285,   "514K" },
+    { 527309,   "515K" },
+    { 528333,   "516K" },
+    { 529357,   "517K" },
+    { 530381,   "518K" },
+    { 531405,   "519K" },
+    { 532429,   "520K" },
+    { 533453,   "521K" },
+    { 534477,   "522K" },
+    { 535501,   "523K" },
+    { 536525,   "524K" },
+    { 537549,   "525K" },
+    { 538573,   "526K" },
+    { 539597,   "527K" },
+    { 540621,   "528K" },
+    { 541645,   "529K" },
+    { 542669,   "530K" },
+    { 543693,   "531K" },
+    { 544717,   "532K" },
+    { 545741,   "533K" },
+    { 546765,   "534K" },
+    { 547789,   "535K" },
+    { 548813,   "536K" },
+    { 549837,   "537K" },
+    { 550861,   "538K" },
+    { 551885,   "539K" },
+    { 552909,   "540K" },
+    { 553933,   "541K" },
+    { 554957,   "542K" },
+    { 555981,   "543K" },
+    { 557005,   "544K" },
+    { 558029,   "545K" },
+    { 559053,   "546K" },
+    { 560077,   "547K" },
+    { 561101,   "548K" },
+    { 562125,   "549K" },
+    { 563149,   "550K" },
+    { 564173,   "551K" },
+    { 565197,   "552K" },
+    { 566221,   "553K" },
+    { 567245,   "554K" },
+    { 568269,   "555K" },
+    { 569293,   "556K" },
+    { 570317,   "557K" },
+    { 571341,   "558K" },
+    { 572365,   "559K" },
+    { 573389,   "560K" },
+    { 574413,   "561K" },
+    { 575437,   "562K" },
+    { 576461,   "563K" },
+    { 577485,   "564K" },
+    { 578509,   "565K" },
+    { 579533,   "566K" },
+    { 580557,   "567K" },
+    { 581581,   "568K" },
+    { 582605,   "569K" },
+    { 583629,   "570K" },
+    { 584653,   "571K" },
+    { 585677,   "572K" },
+    { 586701,   "573K" },
+    { 587725,   "574K" },
+    { 588749,   "575K" },
+    { 589773,   "576K" },
+    { 590797,   "577K" },
+    { 591821,   "578K" },
+    { 592845,   "579K" },
+    { 593869,   "580K" },
+    { 594893,   "581K" },
+    { 595917,   "582K" },
+    { 596941,   "583K" },
+    { 597965,   "584K" },
+    { 598989,   "585K" },
+    { 600013,   "586K" },
+    { 601037,   "587K" },
+    { 602061,   "588K" },
+    { 603085,   "589K" },
+    { 604109,   "590K" },
+    { 605133,   "591K" },
+    { 606157,   "592K" },
+    { 607181,   "593K" },
+    { 608205,   "594K" },
+    { 609229,   "595K" },
+    { 610253,   "596K" },
+    { 611277,   "597K" },
+    { 612301,   "598K" },
+    { 613325,   "599K" },
+    { 614349,   "600K" },
+    { 615373,   "601K" },
+    { 616397,   "602K" },
+    { 617421,   "603K" },
+    { 618445,   "604K" },
+    { 619469,   "605K" },
+    { 620493,   "606K" },
+    { 621517,   "607K" },
+    { 622541,   "608K" },
+    { 623565,   "609K" },
+    { 624589,   "610K" },
+    { 625613,   "611K" },
+    { 626637,   "612K" },
+    { 627661,   "613K" },
+    { 628685,   "614K" },
+    { 629709,   "615K" },
+    { 630733,   "616K" },
+    { 631757,   "617K" },
+    { 632781,   "618K" },
+    { 633805,   "619K" },
+    { 634829,   "620K" },
+    { 635853,   "621K" },
+    { 636877,   "622K" },
+    { 637901,   "623K" },
+    { 638925,   "624K" },
+    { 639949,   "625K" },
+    { 640973,   "626K" },
+    { 641997,   "627K" },
+    { 643021,   "628K" },
+    { 644045,   "629K" },
+    { 645069,   "630K" },
+    { 646093,   "631K" },
+    { 647117,   "632K" },
+    { 648141,   "633K" },
+    { 649165,   "634K" },
+    { 650189,   "635K" },
+    { 651213,   "636K" },
+    { 652237,   "637K" },
+    { 653261,   "638K" },
+    { 654285,   "639K" },
+    { 655309,   "640K" },
+    { 656333,   "641K" },
+    { 657357,   "642K" },
+    { 658381,   "643K" },
+    { 659405,   "644K" },
+    { 660429,   "645K" },
+    { 661453,   "646K" },
+    { 662477,   "647K" },
+    { 663501,   "648K" },
+    { 664525,   "649K" },
+    { 665549,   "650K" },
+    { 666573,   "651K" },
+    { 667597,   "652K" },
+    { 668621,   "653K" },
+    { 669645,   "654K" },
+    { 670669,   "655K" },
+    { 671693,   "656K" },
+    { 672717,   "657K" },
+    { 673741,   "658K" },
+    { 674765,   "659K" },
+    { 675789,   "660K" },
+    { 676813,   "661K" },
+    { 677837,   "662K" },
+    { 678861,   "663K" },
+    { 679885,   "664K" },
+    { 680909,   "665K" },
+    { 681933,   "666K" },
+    { 682957,   "667K" },
+    { 683981,   "668K" },
+    { 685005,   "669K" },
+    { 686029,   "670K" },
+    { 687053,   "671K" },
+    { 688077,   "672K" },
+    { 689101,   "673K" },
+    { 690125,   "674K" },
+    { 691149,   "675K" },
+    { 692173,   "676K" },
+    { 693197,   "677K" },
+    { 694221,   "678K" },
+    { 695245,   "679K" },
+    { 696269,   "680K" },
+    { 697293,   "681K" },
+    { 698317,   "682K" },
+    { 699341,   "683K" },
+    { 700365,   "684K" },
+    { 701389,   "685K" },
+    { 702413,   "686K" },
+    { 703437,   "687K" },
+    { 704461,   "688K" },
+    { 705485,   "689K" },
+    { 706509,   "690K" },
+    { 707533,   "691K" },
+    { 708557,   "692K" },
+    { 709581,   "693K" },
+    { 710605,   "694K" },
+    { 711629,   "695K" },
+    { 712653,   "696K" },
+    { 713677,   "697K" },
+    { 714701,   "698K" },
+    { 715725,   "699K" },
+    { 716749,   "700K" },
+    { 717773,   "701K" },
+    { 718797,   "702K" },
+    { 719821,   "703K" },
+    { 720845,   "704K" },
+    { 721869,   "705K" },
+    { 722893,   "706K" },
+    { 723917,   "707K" },
+    { 724941,   "708K" },
+    { 725965,   "709K" },
+    { 726989,   "710K" },
+    { 728013,   "711K" },
+    { 729037,   "712K" },
+    { 730061,   "713K" },
+    { 731085,   "714K" },
+    { 732109,   "715K" },
+    { 733133,   "716K" },
+    { 734157,   "717K" },
+    { 735181,   "718K" },
+    { 736205,   "719K" },
+    { 737229,   "720K" },
+    { 738253,   "721K" },
+    { 739277,   "722K" },
+    { 740301,   "723K" },
+    { 741325,   "724K" },
+    { 742349,   "725K" },
+    { 743373,   "726K" },
+    { 744397,   "727K" },
+    { 745421,   "728K" },
+    { 746445,   "729K" },
+    { 747469,   "730K" },
+    { 748493,   "731K" },
+    { 749517,   "732K" },
+    { 750541,   "733K" },
+    { 751565,   "734K" },
+    { 752589,   "735K" },
+    { 753613,   "736K" },
+    { 754637,   "737K" },
+    { 755661,   "738K" },
+    { 756685,   "739K" },
+    { 757709,   "740K" },
+    { 758733,   "741K" },
+    { 759757,   "742K" },
+    { 760781,   "743K" },
+    { 761805,   "744K" },
+    { 762829,   "745K" },
+    { 763853,   "746K" },
+    { 764877,   "747K" },
+    { 765901,   "748K" },
+    { 766925,   "749K" },
+    { 767949,   "750K" },
+    { 768973,   "751K" },
+    { 769997,   "752K" },
+    { 771021,   "753K" },
+    { 772045,   "754K" },
+    { 773069,   "755K" },
+    { 774093,   "756K" },
+    { 775117,   "757K" },
+    { 776141,   "758K" },
+    { 777165,   "759K" },
+    { 778189,   "760K" },
+    { 779213,   "761K" },
+    { 780237,   "762K" },
+    { 781261,   "763K" },
+    { 782285,   "764K" },
+    { 783309,   "765K" },
+    { 784333,   "766K" },
+    { 785357,   "767K" },
+    { 786381,   "768K" },
+    { 787405,   "769K" },
+    { 788429,   "770K" },
+    { 789453,   "771K" },
+    { 790477,   "772K" },
+    { 791501,   "773K" },
+    { 792525,   "774K" },
+    { 793549,   "775K" },
+    { 794573,   "776K" },
+    { 795597,   "777K" },
+    { 796621,   "778K" },
+    { 797645,   "779K" },
+    { 798669,   "780K" },
+    { 799693,   "781K" },
+    { 800717,   "782K" },
+    { 801741,   "783K" },
+    { 802765,   "784K" },
+    { 803789,   "785K" },
+    { 804813,   "786K" },
+    { 805837,   "787K" },
+    { 806861,   "788K" },
+    { 807885,   "789K" },
+    { 808909,   "790K" },
+    { 809933,   "791K" },
+    { 810957,   "792K" },
+    { 811981,   "793K" },
+    { 813005,   "794K" },
+    { 814029,   "795K" },
+    { 815053,   "796K" },
+    { 816077,   "797K" },
+    { 817101,   "798K" },
+    { 818125,   "799K" },
+    { 819149,   "800K" },
+    { 820173,   "801K" },
+    { 821197,   "802K" },
+    { 822221,   "803K" },
+    { 823245,   "804K" },
+    { 824269,   "805K" },
+    { 825293,   "806K" },
+    { 826317,   "807K" },
+    { 827341,   "808K" },
+    { 828365,   "809K" },
+    { 829389,   "810K" },
+    { 830413,   "811K" },
+    { 831437,   "812K" },
+    { 832461,   "813K" },
+    { 833485,   "814K" },
+    { 834509,   "815K" },
+    { 835533,   "816K" },
+    { 836557,   "817K" },
+    { 837581,   "818K" },
+    { 838605,   "819K" },
+    { 839629,   "820K" },
+    { 840653,   "821K" },
+    { 841677,   "822K" },
+    { 842701,   "823K" },
+    { 843725,   "824K" },
+    { 844749,   "825K" },
+    { 845773,   "826K" },
+    { 846797,   "827K" },
+    { 847821,   "828K" },
+    { 848845,   "829K" },
+    { 849869,   "830K" },
+    { 850893,   "831K" },
+    { 851917,   "832K" },
+    { 852941,   "833K" },
+    { 853965,   "834K" },
+    { 854989,   "835K" },
+    { 856013,   "836K" },
+    { 857037,   "837K" },
+    { 858061,   "838K" },
+    { 859085,   "839K" },
+    { 860109,   "840K" },
+    { 861133,   "841K" },
+    { 862157,   "842K" },
+    { 863181,   "843K" },
+    { 864205,   "844K" },
+    { 865229,   "845K" },
+    { 866253,   "846K" },
+    { 867277,   "847K" },
+    { 868301,   "848K" },
+    { 869325,   "849K" },
+    { 870349,   "850K" },
+    { 871373,   "851K" },
+    { 872397,   "852K" },
+    { 873421,   "853K" },
+    { 874445,   "854K" },
+    { 875469,   "855K" },
+    { 876493,   "856K" },
+    { 877517,   "857K" },
+    { 878541,   "858K" },
+    { 879565,   "859K" },
+    { 880589,   "860K" },
+    { 881613,   "861K" },
+    { 882637,   "862K" },
+    { 883661,   "863K" },
+    { 884685,   "864K" },
+    { 885709,   "865K" },
+    { 886733,   "866K" },
+    { 887757,   "867K" },
+    { 888781,   "868K" },
+    { 889805,   "869K" },
+    { 890829,   "870K" },
+    { 891853,   "871K" },
+    { 892877,   "872K" },
+    { 893901,   "873K" },
+    { 894925,   "874K" },
+    { 895949,   "875K" },
+    { 896973,   "876K" },
+    { 897997,   "877K" },
+    { 899021,   "878K" },
+    { 900045,   "879K" },
+    { 901069,   "880K" },
+    { 902093,   "881K" },
+    { 903117,   "882K" },
+    { 904141,   "883K" },
+    { 905165,   "884K" },
+    { 906189,   "885K" },
+    { 907213,   "886K" },
+    { 908237,   "887K" },
+    { 909261,   "888K" },
+    { 910285,   "889K" },
+    { 911309,   "890K" },
+    { 912333,   "891K" },
+    { 913357,   "892K" },
+    { 914381,   "893K" },
+    { 915405,   "894K" },
+    { 916429,   "895K" },
+    { 917453,   "896K" },
+    { 918477,   "897K" },
+    { 919501,   "898K" },
+    { 920525,   "899K" },
+    { 921549,   "900K" },
+    { 922573,   "901K" },
+    { 923597,   "902K" },
+    { 924621,   "903K" },
+    { 925645,   "904K" },
+    { 926669,   "905K" },
+    { 927693,   "906K" },
+    { 928717,   "907K" },
+    { 929741,   "908K" },
+    { 930765,   "909K" },
+    { 931789,   "910K" },
+    { 932813,   "911K" },
+    { 933837,   "912K" },
+    { 934861,   "913K" },
+    { 935885,   "914K" },
+    { 936909,   "915K" },
+    { 937933,   "916K" },
+    { 938957,   "917K" },
+    { 939981,   "918K" },
+    { 941005,   "919K" },
+    { 942029,   "920K" },
+    { 943053,   "921K" },
+    { 944077,   "922K" },
+    { 945101,   "923K" },
+    { 946125,   "924K" },
+    { 947149,   "925K" },
+    { 948173,   "926K" },
+    { 949197,   "927K" },
+    { 950221,   "928K" },
+    { 951245,   "929K" },
+    { 952269,   "930K" },
+    { 953293,   "931K" },
+    { 954317,   "932K" },
+    { 955341,   "933K" },
+    { 956365,   "934K" },
+    { 957389,   "935K" },
+    { 958413,   "936K" },
+    { 959437,   "937K" },
+    { 960461,   "938K" },
+    { 961485,   "939K" },
+    { 962509,   "940K" },
+    { 963533,   "941K" },
+    { 964557,   "942K" },
+    { 965581,   "943K" },
+    { 966605,   "944K" },
+    { 967629,   "945K" },
+    { 968653,   "946K" },
+    { 969677,   "947K" },
+    { 970701,   "948K" },
+    { 971725,   "949K" },
+    { 972749,   "950K" },
+    { 973773,   "951K" },
+    { 974797,   "952K" },
+    { 975821,   "953K" },
+    { 976845,   "954K" },
+    { 977869,   "955K" },
+    { 978893,   "956K" },
+    { 979917,   "957K" },
+    { 980941,   "958K" },
+    { 981965,   "959K" },
+    { 982989,   "960K" },
+    { 984013,   "961K" },
+    { 985037,   "962K" },
+    { 986061,   "963K" },
+    { 987085,   "964K" },
+    { 988109,   "965K" },
+    { 989133,   "966K" },
+    { 990157,   "967K" },
+    { 991181,   "968K" },
+    { 992205,   "969K" },
+    { 993229,   "970K" },
+    { 994253,   "971K" },
+    { 995277,   "972K" },
+    { 996301,   "973K" },
+    { 997325,   "974K" },
+    { 998349,   "975K" },
+    { 999373,   "976K" },
+    { 1000397,  "977K" },
+    { 1001421,  "978K" },
+    { 1002445,  "979K" },
+    { 1003469,  "980K" },
+    { 1004493,  "981K" },
+    { 1005517,  "982K" },
+    { 1006541,  "983K" },
+    { 1007565,  "984K" },
+    { 1008589,  "985K" },
+    { 1009613,  "986K" },
+    { 1010637,  "987K" },
+    { 1011661,  "988K" },
+    { 1012685,  "989K" },
+    { 1013709,  "990K" },
+    { 1014733,  "991K" },
+    { 1015757,  "992K" },
+    { 1016781,  "993K" },
+    { 1017805,  "994K" },
+    { 1018829,  "995K" },
+    { 1019853,  "996K" },
+    { 1020877,  "997K" },
+    { 1021901,  "998K" },
+    { 1022925,  "999K" },
+    { 1023949,  "1.0M" },
+    { 1101005,  "1.1M" },
+    { 1205863,  "1.2M" },
+    { 1310721,  "1.3M" },
+    { 1415578,  "1.4M" },
+    { 1520436,  "1.5M" },
+    { 1625293,  "1.6M" },
+    { 1730151,  "1.7M" },
+    { 1835008,  "1.8M" },
+    { 1939866,  "1.9M" },
+    { 2044724,  "2.0M" },
+    { 2149581,  "2.1M" },
+    { 2254439,  "2.2M" },
+    { 2359297,  "2.3M" },
+    { 2464154,  "2.4M" },
+    { 2569012,  "2.5M" },
+    { 2673869,  "2.6M" },
+    { 2778727,  "2.7M" },
+    { 2883584,  "2.8M" },
+    { 2988442,  "2.9M" },
+    { 3093300,  "3.0M" },
+    { 3198157,  "3.1M" },
+    { 3303015,  "3.2M" },
+    { 3407873,  "3.3M" },
+    { 3512730,  "3.4M" },
+    { 3617588,  "3.5M" },
+    { 3722445,  "3.6M" },
+    { 3827303,  "3.7M" },
+    { 3932160,  "3.8M" },
+    { 4037018,  "3.9M" },
+    { 4141876,  "4.0M" },
+    { 4246733,  "4.1M" },
+    { 4351591,  "4.2M" },
+    { 4456449,  "4.3M" },
+    { 4561306,  "4.4M" },
+    { 4666164,  "4.5M" },
+    { 4771021,  "4.6M" },
+    { 4875879,  "4.7M" },
+    { 4980736,  "4.8M" },
+    { 5085594,  "4.9M" },
+    { 5190452,  "5.0M" },
+    { 5295309,  "5.1M" },
+    { 5400167,  "5.2M" },
+    { 5505025,  "5.3M" },
+    { 5609882,  "5.4M" },
+    { 5714740,  "5.5M" },
+    { 5819597,  "5.6M" },
+    { 5924455,  "5.7M" },
+    { 6029312,  "5.8M" },
+    { 6134170,  "5.9M" },
+    { 6239028,  "6.0M" },
+    { 6343885,  "6.1M" },
+    { 6448743,  "6.2M" },
+    { 6553601,  "6.3M" },
+    { 6658458,  "6.4M" },
+    { 6763316,  "6.5M" },
+    { 6868173,  "6.6M" },
+    { 6973031,  "6.7M" },
+    { 7077888,  "6.8M" },
+    { 7182746,  "6.9M" },
+    { 7287604,  "7.0M" },
+    { 7392461,  "7.1M" },
+    { 7497319,  "7.2M" },
+    { 7602177,  "7.3M" },
+    { 7707034,  "7.4M" },
+    { 7811892,  "7.5M" },
+    { 7916749,  "7.6M" },
+    { 8021607,  "7.7M" },
+    { 8126464,  "7.8M" },
+    { 8231322,  "7.9M" },
+    { 8336180,  "8.0M" },
+    { 8441037,  "8.1M" },
+    { 8545895,  "8.2M" },
+    { 8650753,  "8.3M" },
+    { 8755610,  "8.4M" },
+    { 8860468,  "8.5M" },
+    { 8965325,  "8.6M" },
+    { 9070183,  "8.7M" },
+    { 9175040,  "8.8M" },
+    { 9279898,  "8.9M" },
+    { 9384756,  "9.0M" },
+    { 9489613,  "9.1M" },
+    { 9594471,  "9.2M" },
+    { 9699329,  "9.3M" },
+    { 9804186,  "9.4M" },
+    { 9909044,  "9.5M" },
+    { 10013901, "9.6M" },
+    { 10118759, "9.7M" },
+    { 10223616, "9.8M" },
+    { 10328474, "9.9M" },
+    { 10433332, "10M"  },
+    { 11481908, "11M"  },
+    { 12530484, "12M"  },
+    { 13579060, "13M"  },
+    { 14627636, "14M"  },
+    { 15676212, "15M"  },
+    { 16724788, "16M"  },
+    { 17773364, "17M"  },
+    { 18821940, "18M"  },
+    { 19870516, "19M"  },
+    { 20919092, "20M"  },
+    { 21967668, "21M"  },
+    { 23016244, "22M"  },
+    { 24064820, "23M"  },
+    { 25113396, "24M"  },
+    { 26161972, "25M"  },
+    { 27210548, "26M"  },
+    { 28259124, "27M"  },
+    { 29307700, "28M"  },
+    { 30356276, "29M"  },
+    { 31404852, "30M"  },
+    { 32453428, "31M"  },
+    { 33502004, "32M"  },
+    { 34550580, "33M"  },
+    { 35599156, "34M"  },
+    { 36647732, "35M"  },
+    { 37696308, "36M"  },
+    { 38744884, "37M"  },
+    { 39793460, "38M"  },
+    { 40842036, "39M"  },
+    { 41890612, "40M"  },
+    { 42939188, "41M"  },
+    { 43987764, "42M"  },
+    { 45036340, "43M"  },
+    { 46084916, "44M"  },
+    { 47133492, "45M"  },
+    { 48182068, "46M"  },
+    { 49230644, "47M"  },
+    { 50279220, "48M"  },
+    { 51327796, "49M"  },
+    { 52376372, "50M"  },
+    { 53424948, NULL   },
+  };
+  // clang-format on
+
+  {
+    char buf[32];
+
+    for (size_t i = 0; i < mutt_array_size(transition_tests); i++)
+    {
+      struct SizeTest *t = &transition_tests[i];
+      if (!t->expected)
+        break;
+
+      struct SizeTest *t2 = &transition_tests[i + 1];
+
+      TEST_CASE_("%ld", t->num);
+      memset(buf, 0, sizeof(buf));
+      mutt_str_pretty_size(buf, sizeof(buf), t->num);
+      TEST_CHECK(strcmp(buf, t->expected) == 0);
+
+      TEST_CASE_("%ld", t2->num);
+      memset(buf, 0, sizeof(buf));
+      mutt_str_pretty_size(buf, sizeof(buf), t2->num - 1);
+      TEST_CHECK(strcmp(buf, t->expected) == 0);
+    }
+  }
 }