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