AlchemyClient { public GetExperimentsRequestBuilder getExperimentsFiltered() { return new GetExperimentsRequestBuilder(GET_EXPERIMENTS_REQUEST_BUILDER); } AlchemyClient(AlchemyClientConfiguration configuration, Environment environment);  AlchemyClient(AlchemyClientConfiguration configuration,
                         ExecutorService executorService,
                         ObjectMapper objectMapper);  AlchemyClient(AlchemyClientConfiguration configuration,
                         ExecutorService executorService);  AlchemyClient(AlchemyClientConfiguration configuration); List<ExperimentDto> getExperiments(); GetExperimentsRequestBuilder getExperimentsFiltered(); ExperimentDto getExperiment(String experimentName); List<AllocationDto> getAllocations(String experimentName); List<TreatmentDto> getTreatments(String experimentName); TreatmentDto getTreatment(String experimentName, String treatmentName); List<TreatmentOverrideDto> getOverrides(String experimentName); TreatmentOverrideDto getOverride(String experimentName, String overrideName); CreateExperimentRequestBuilder createExperiment(String experimentName); void addTreatment(String experimentName, String treatmentName, String description); void addTreatment(String experimentName, String treatmentName); void addOverride(String experimentName,
                            String overrideName,
                            String treatmentName,
                            String filter); UpdateExperimentRequestBuilder updateExperiment(String experimentName); UpdateAllocationsRequestBuilder updateAllocations(String experimentName); TreatmentDto getActiveTreatment(String experimentName, IdentityDto identity); Map<String, TreatmentDto> getActiveTreatments(IdentityDto identity); void deleteExperiment(String experimentName); void clearAllocations(String experimentName); void removeTreatment(String experimentName, String treatmentName); UpdateTreatmentRequestBuilder updateTreatment(String experimentName, String treatmentName); void clearTreatments(String experimentName); void clearOverrides(String experimentName); void removeOverride(String experimentName, String overrideName); Map<String, Class<? extends IdentityDto>> getIdentityTypes(); JsonSchema getIdentitySchema(String identityType); Set<String> getIdentityAttributes(String identityType);  }
@Test public void testGetExperimentsFiltered() { client .createExperiment("exp") .setDescription("this is an experiment") .activate() .apply(); client .createExperiment("another_exp") .setDescription("another experiment") .activate() .apply(); final List<ExperimentDto> experiments1 = client.getExperimentsFiltered().sort("name").limit(1).apply(); assertEquals(1, experiments1.size()); assertEquals("another_exp", experiments1.get(0).getName()); final List<ExperimentDto> experiments2 = client.getExperimentsFiltered().sort("name").offset(1).apply(); assertEquals(1, experiments2.size()); assertEquals("exp", experiments2.get(0).getName()); final List<ExperimentDto> experiments3 = client.getExperimentsFiltered().sort("-name").offset(1).apply(); assertEquals(1, experiments3.size()); assertEquals("another_exp", experiments3.get(0).getName()); final List<ExperimentDto> experiments4 = client.getExperimentsFiltered().filter("another").apply(); assertEquals(1, experiments4.size()); assertEquals("another_exp", experiments4.get(0).getName()); }