public boolean isAtLeast(final KsqlVersion version) {
    if (versionType == version.versionType) {
      return isAtLeastVersion(this, version.majorVersion, version.minorVersion);
    }

    if (versionType == VersionType.KSQLDB_STANDALONE) {
      final KsqlVersion otherStandalone = versionMapping.get(version);
      return otherStandalone != null
          && isAtLeastVersion(
              this,
              otherStandalone.majorVersion,
              otherStandalone.minorVersion
          );
    }

    final KsqlVersion standalone = versionMapping.get(this);
    return standalone != null
        && isAtLeastVersion(standalone, version.majorVersion, version.minorVersion);
  }
@Test
  public void shouldCompareCpVersionToStandaloneVersionIsAtLeast() {
    // known mappings
    assertThat(new KsqlVersion("6.0.").isAtLeast(new KsqlVersion("0.10.")), is(true));
    assertThat(new KsqlVersion("0.10.").isAtLeast(new KsqlVersion("6.0.")), is(true));

    assertThat(new KsqlVersion("6.1.").isAtLeast(new KsqlVersion("0.10.")), is(true));
    assertThat(new KsqlVersion("6.1.").isAtLeast(new KsqlVersion("0.14.")), is(true));
    assertThat(new KsqlVersion("0.14.").isAtLeast(new KsqlVersion("6.0.")), is(true));
    assertThat(new KsqlVersion("0.14.").isAtLeast(new KsqlVersion("6.1.")), is(true));

    assertThat(new KsqlVersion("6.0.").isAtLeast(new KsqlVersion("0.14.")), is(false));
    assertThat(new KsqlVersion("0.10.").isAtLeast(new KsqlVersion("6.1.")), is(false));

    // unknown mappings
    assertThat(new KsqlVersion("6.2.").isAtLeast(new KsqlVersion("0.10.")), is(false));
    assertThat(new KsqlVersion("0.10.").isAtLeast(new KsqlVersion("6.2.")), is(false));
  }