public void checkVariantSearchIndex(VariantDBAdaptor dbAdaptor) throws IOException, VariantSearchException, StorageEngineException { QueryOptions queryOptions = new QueryOptions(QueryOptions.LIMIT, 1000); Query query = new Query(); TreeSet<Variant> variantsFromSearch = new TreeSet<>(Comparator.comparing(Variant::toString)); TreeSet<Variant> variantsFromDB = new TreeSet<>(Comparator.comparing(Variant::toString)); variantsFromSearch.addAll(variantStorageEngine.getVariantSearchManager().query(DB_NAME, query, queryOptions).getResult()); variantsFromDB.addAll(dbAdaptor.get(query, queryOptions).getResult()); assertEquals(variantsFromDB.size(), variantsFromSearch.size()); assertEquals(variantsFromDB.size(), variantStorageEngine.getVariantSearchManager().count(DB_NAME, query)); Iterator<Variant> variantsFromSearchIterator = variantsFromSearch.iterator(); Iterator<Variant> variantsFromDBIterator = variantsFromDB.iterator(); for (int i = 0; i < variantsFromDB.size(); i++) { Variant variantFromDB = variantsFromSearchIterator.next(); Set<String> studiesFromDB = variantFromDB.getStudies().stream().map(StudyEntry::getStudyId).collect(Collectors.toSet()); Variant variantFromSearch = variantsFromDBIterator.next(); Set<String> studiesFromSearch = variantFromSearch.getStudies().stream().map(StudyEntry::getStudyId).collect(Collectors.toSet()); assertEquals(variantFromDB.toString(), variantFromSearch.toString()); assertEquals(variantFromDB.toString(), studiesFromDB, studiesFromSearch); } }
protected VariantQueryResult<Variant> query(Query query, QueryOptions options) { try { query = preProcessQuery(query, options); StudyConfigurationManager scm = dbAdaptor.getStudyConfigurationManager(); String collection = VariantSearchUtils.inferSpecificSearchIndexSamplesCollection(query, options, scm, DB_NAME); // Do not execute this test if the query is not covered by the specific search index collection Assume.assumeThat(query.toJson(), collection, CoreMatchers.notNullValue()); if (options.getInt(QueryOptions.LIMIT, 0) <= 0) { options = new QueryOptions(options); options.put(QueryOptions.LIMIT, 100000); } return variantStorageEngine.getVariantSearchManager().query(collection, query, options); } catch (StorageEngineException | VariantSearchException | IOException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } return null; }
return getVariantSearchManager().iterator(specificSearchIndexSamples, query, options); } else { return getVariantSearchManager().query(specificSearchIndexSamples, query, options); return getVariantSearchManager().iterator(dbName, query, options); } else { return getVariantSearchManager().query(dbName, query, options);
VariantQueryResult<Variant> results = variantSearchManager.query(collection, new Query(), new QueryOptions(QueryOptions.LIMIT, limit));
assertEquals(expectedCount, variantSearchManager.query(collection, new Query(), new QueryOptions()).getNumTotalResults());