public String stringify(boolean value) {
    throw new UnsupportedOperationException(
        "stringify(boolean) was called on a non-boolean stringifier: " + toString());
  }
@Test
  public void testTimeNanoStringifier() {
    for (PrimitiveStringifier stringifier : asList(TIME_NANOS_STRINGIFIER, TIME_NANOS_UTC_STRINGIFIER)) {
      String timezoneAmendment = (stringifier == TIME_NANOS_STRINGIFIER ? "" : "+0000");

      assertEquals(withZoneString("00:00:00.000000000", timezoneAmendment), stringifier.stringify(0l));

      assertEquals(
          withZoneString("12:34:56.789012987", timezoneAmendment),
          stringifier.stringify(convert(NANOSECONDS, 12, 34, 56, 789012987)));
      assertEquals(
          withZoneString("-12:34:56.000789012", timezoneAmendment),
          stringifier.stringify(convert(NANOSECONDS, -12, -34, -56, -789012)));
      assertEquals(
          withZoneString("12345:12:34.000056789", timezoneAmendment),
          stringifier.stringify(convert(NANOSECONDS, 12345, 12, 34, 56789)));
      assertEquals(
          withZoneString("-12345:12:34.000056789", timezoneAmendment),
          stringifier.stringify(convert(NANOSECONDS, -12345, -12, -34, -56789)));

      checkThrowingUnsupportedException(stringifier, Integer.TYPE, Long.TYPE);
    }
  }