public void testFunction() {
   ByteSizeStrings iso = ByteSizeStrings.iso();
   Iterable<String> bytes =
       Iterables.transform(Arrays.asList(23456789L, 23456789012L, 23456789012345L), iso);
   assertEquals(Iterables.get(bytes, 0), "22.4 MiB");
   assertEquals(Iterables.get(bytes, 1), "21.8 GiB");
   assertEquals(Iterables.get(bytes, 2), "21.3 TiB");
 }
  public void testBuilder() {
    ByteSizeStrings strings =
        ByteSizeStrings.builder()
            .bytesPerMetricUnit(1024)
            .precision(4)
            .lowerLimit(5)
            .maxLen(4)
            .suffixBytes("b")
            .suffixKilo("kb")
            .suffixMega("Mb")
            .suffixGiga("Gb")
            .suffixTera("Tb")
            .addSpace()
            .build();

    assertEquals(strings.makeSizeString(-1), "-1 b");
    assertEquals(strings.makeSizeString(0), "0 b");
    assertEquals(strings.makeSizeString(999), "999 b");
    assertEquals(strings.makeSizeString(1024), "1024 b");
    assertEquals(strings.makeSizeString(1234), "1234 b");
    assertEquals(strings.makeSizeString(2345), "2345 b");
    assertEquals(strings.makeSizeString(4096), "4096 b");
    assertEquals(strings.makeSizeString(4567), "4567 b");
    assertEquals(strings.makeSizeString(6789), "6.630 kb");
    assertEquals(strings.makeSizeString(65535), "64.00 kb");
    assertEquals(strings.makeSizeString(23456789L), "22.37 Mb");
    assertEquals(strings.makeSizeString(23456789012L), "21.85 Gb");
    assertEquals(strings.makeSizeString(23456789012345L), "21.33 Tb");
    assertEquals(strings.makeSizeString(Long.MAX_VALUE), "8388608 Tb");
  }
 public void testISOSizeString() {
   assertEquals(ByteSizeStrings.iso().makeSizeString(-1), "-1 B");
   assertEquals(ByteSizeStrings.iso().makeSizeString(0), "0 B");
   assertEquals(ByteSizeStrings.iso().makeSizeString(999), "999 B");
   assertEquals(ByteSizeStrings.iso().makeSizeString(1024), "1024 B");
   assertEquals(ByteSizeStrings.iso().makeSizeString(1234), "1234 B");
   assertEquals(ByteSizeStrings.iso().makeSizeString(2345), "2.29 KiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(4096), "4 KiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(4567), "4.46 KiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(6789), "6.63 KiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(65535), "64.0 KiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(23456789L), "22.4 MiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(23456789012L), "21.8 GiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(23456789012345L), "21.3 TiB");
   assertEquals(ByteSizeStrings.iso().makeSizeString(Long.MAX_VALUE), "8388608 TiB");
 }
 public void testJavaSizeString() {
   assertEquals(ByteSizeStrings.java().makeSizeString(-1), "-1");
   assertEquals(ByteSizeStrings.java().makeSizeString(0), "0");
   assertEquals(ByteSizeStrings.java().makeSizeString(999), "999");
   assertEquals(ByteSizeStrings.java().makeSizeString(1024), "1024");
   assertEquals(ByteSizeStrings.java().makeSizeString(1234), "1234");
   assertEquals(ByteSizeStrings.java().makeSizeString(2345), "2345");
   assertEquals(ByteSizeStrings.java().makeSizeString(4096), "4096");
   assertEquals(ByteSizeStrings.java().makeSizeString(4567), "4567");
   assertEquals(ByteSizeStrings.java().makeSizeString(6789), "6789");
   assertEquals(ByteSizeStrings.java().makeSizeString(65535), "64k");
   assertEquals(ByteSizeStrings.java().makeSizeString(23456789L), "22m");
   assertEquals(ByteSizeStrings.java().makeSizeString(23456789012L), "22g");
   assertEquals(ByteSizeStrings.java().makeSizeString(23456789012345L), "21000g");
   assertEquals(ByteSizeStrings.java().makeSizeString(Long.MAX_VALUE), "8388608000g");
 }
 public void testFormatter() {
   ByteSizeStrings iso = ByteSizeStrings.iso();
   assertEquals(String.format("%s", iso.formatted(23456789L)), "22.4 MiB");
   assertEquals(String.format("%.6s", iso.formatted(23456789L)), "22.3701 MiB");
   assertEquals(String.format("%#s", iso.formatted(23456789L)), "23.5 MB");
 }