static BigtableDataSettings translateReadToVeneerSettings(
      @NonNull BigtableConfig config,
      @NonNull BigtableReadOptions options,
      @Nullable BigtableReadOptions optionsFromBigtableOptions,
      @NonNull PipelineOptions pipelineOptions)
      throws IOException {
    BigtableDataSettings.Builder settings = buildBigtableDataSettings(config, pipelineOptions);
    return configureReadSettings(settings, options, optionsFromBigtableOptions);
  }
@Test
  public void testVeneerReadSettings() throws Exception {
    BigtableConfig config =
        BigtableConfig.builder()
            .setProjectId(ValueProvider.StaticValueProvider.of("project"))
            .setInstanceId(ValueProvider.StaticValueProvider.of("instance"))
            .setAppProfileId(ValueProvider.StaticValueProvider.of("app"))
            .setValidate(true)
            .build();
    BigtableReadOptions readOptions =
        BigtableReadOptions.builder()
            .setTableId(ValueProvider.StaticValueProvider.of("table"))
            .setAttemptTimeout(org.joda.time.Duration.millis(101))
            .setOperationTimeout(org.joda.time.Duration.millis(1001))
            .build();

    PipelineOptions pipelineOptions = PipelineOptionsFactory.as(GcpOptions.class);

    BigtableDataSettings settings =
        BigtableConfigTranslator.translateReadToVeneerSettings(
            config, readOptions, null, pipelineOptions);

    EnhancedBigtableStubSettings stubSettings = settings.getStubSettings();

    assertEquals(config.getProjectId().get(), stubSettings.getProjectId());
    assertEquals(config.getInstanceId().get(), stubSettings.getInstanceId());
    assertEquals(config.getAppProfileId().get(), stubSettings.getAppProfileId());
    assertEquals(
        Duration.ofMillis(101),
        stubSettings.readRowsSettings().getRetrySettings().getInitialRpcTimeout());
    assertEquals(
        Duration.ofMillis(1001),
        stubSettings.readRowsSettings().getRetrySettings().getTotalTimeout());
  }