public static Column of(
      final ColumnName name,
      final SqlType type,
      final Namespace namespace,
      final int indexWithinNamespace
  ) {
    return new Column(name, type, namespace, indexWithinNamespace, Optional.empty());
  }
@SuppressWarnings("UnstableApiUsage")
  @Test
  public void shouldImplementEqualsProperly() {
    new EqualsTester()
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, VALUE, 10),
            Column.of(SOME_NAME, INTEGER, VALUE, 10)
        )
        .addEqualityGroup(
            Column.of(SOME_OTHER_NAME, INTEGER, VALUE, 10)
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, DOUBLE, VALUE, 10)
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, KEY, 10)
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, VALUE, 5)
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, HEADERS, 5)
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, HEADERS, 5, Optional.of("key1"))
        )
        .addEqualityGroup(
            Column.of(SOME_NAME, INTEGER, HEADERS, 5, Optional.of("key2"))
        )
        .testEquals();
  }