private IcebergTimestampObjectInspector() {
    super(TypeInfoFactory.timestampTypeInfo);
  }
@Test
  public void testIcebergTimestampObjectInspector() {
    IcebergTimestampObjectInspector oi = IcebergTimestampObjectInspector.get();

    assertThat(oi.getCategory()).isEqualTo(ObjectInspector.Category.PRIMITIVE);
    assertThat(oi.getPrimitiveCategory())
        .isEqualTo(PrimitiveObjectInspector.PrimitiveCategory.TIMESTAMP);

    assertThat(oi.getTypeInfo()).isEqualTo(TypeInfoFactory.timestampTypeInfo);
    assertThat(oi.getTypeName()).isEqualTo(TypeInfoFactory.timestampTypeInfo.getTypeName());

    assertThat(oi.getJavaPrimitiveClass()).isEqualTo(Timestamp.class);
    assertThat(oi.getPrimitiveWritableClass()).isEqualTo(TimestampWritable.class);

    assertThat(oi.copyObject(null)).isNull();
    assertThat(oi.getPrimitiveJavaObject(null)).isNull();
    assertThat(oi.getPrimitiveWritableObject(null)).isNull();
    assertThat(oi.convert(null)).isNull();

    LocalDateTime local = LocalDateTime.of(2020, 1, 1, 12, 55, 30, 5560000);
    Timestamp ts = Timestamp.valueOf(local);

    assertThat(oi.getPrimitiveJavaObject(local)).isEqualTo(ts);
    assertThat(oi.getPrimitiveWritableObject(local)).isEqualTo(new TimestampWritable(ts));

    Timestamp copy = (Timestamp) oi.copyObject(ts);

    assertThat(copy).isEqualTo(ts);
    assertThat(copy).isNotSameAs(ts);

    assertThat(oi.preferWritable()).isFalse();

    assertThat(oi.convert(ts)).isEqualTo(local);
  }