CompoundIndexStrategy implements NumericIndexStrategy { @Override public MultiDimensionalCoordinates getCoordinatesPerDimension( final byte[] partitionKey, final byte[] sortKey) { return subStrategy2.getCoordinatesPerDimension( trimPartitionIdForSortStrategy(partitionKey), sortKey); } CompoundIndexStrategy(
      final PartitionIndexStrategy<? extends MultiDimensionalNumericData, ? extends MultiDimensionalNumericData> subStrategy1,
      final NumericIndexStrategy subStrategy2); protected  CompoundIndexStrategy(); PartitionIndexStrategy<MultiDimensionalNumericData, MultiDimensionalNumericData> getPrimarySubStrategy(); NumericIndexStrategy getSecondarySubStrategy(); @Override byte[] toBinary(); @Override void fromBinary(final byte[] bytes); int getNumberOfDimensions(); @Override QueryRanges getQueryRanges(
      final MultiDimensionalNumericData indexedRange,
      final IndexMetaData... hints); @Override QueryRanges getQueryRanges(
      final MultiDimensionalNumericData indexedRange,
      final int maxEstimatedRangeDecomposition,
      final IndexMetaData... hints); @Override InsertionIds getInsertionIds(final MultiDimensionalNumericData indexedData); @Override InsertionIds getInsertionIds(
      final MultiDimensionalNumericData indexedData,
      final int maxEstimatedDuplicateIds); @Override MultiDimensionalNumericData getRangeForId(
      final byte[] partitionKey,
      final byte[] sortKey); @Override MultiDimensionalCoordinates getCoordinatesPerDimension(
      final byte[] partitionKey,
      final byte[] sortKey); @Override NumericDimensionDefinition[] getOrderedDimensionDefinitions(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String getId(); @Override double[] getHighestPrecisionIdRangePerDimension(); @Override int getPartitionKeyLength(); @Override List<IndexMetaData> createMetaData(); @Override MultiDimensionalCoordinateRanges[] getCoordinateRangesPerDimension(
      final MultiDimensionalNumericData dataRange,
      final IndexMetaData... hints); @Override byte[][] getInsertionPartitionKeys(final MultiDimensionalNumericData insertionData); @Override byte[][] getQueryPartitionKeys(
      final MultiDimensionalNumericData queryData,
      final IndexMetaData... hints); @Override byte[][] getPredefinedSplits();  }
@Test public void testGetCoordinatesPerDimension() { final byte[] compoundIndexPartitionKey = new byte[] {16}; final byte[] compoundIndexSortKey = new byte[] {-46, -93, -110, -31}; final MultiDimensionalCoordinates sfcIndexCoordinatesPerDim = sfcIndexStrategy.getCoordinatesPerDimension( compoundIndexPartitionKey, compoundIndexSortKey); final MultiDimensionalCoordinates coordinatesPerDim = compoundIndexStrategy.getCoordinatesPerDimension( compoundIndexPartitionKey, compoundIndexSortKey); Assert.assertTrue( Long.compare( sfcIndexCoordinatesPerDim.getCoordinate(0).getCoordinate(), coordinatesPerDim.getCoordinate(0).getCoordinate()) == 0); Assert.assertTrue( Long.compare( sfcIndexCoordinatesPerDim.getCoordinate(1).getCoordinate(), coordinatesPerDim.getCoordinate(1).getCoordinate()) == 0); }