RoundRobinKeyIndexStrategy implements
    PartitionIndexStrategy<MultiDimensionalNumericData, MultiDimensionalNumericData> { public byte[][] getPartitionKeys() { return keys; } RoundRobinKeyIndexStrategy();  RoundRobinKeyIndexStrategy(final int size); @Override String getId(); @Override byte[] toBinary(); @Override void fromBinary(final byte[] bytes); byte[][] getPartitionKeys(); @Override int getPartitionKeyLength(); @Override List<IndexMetaData> createMetaData(); @Override byte[][] getInsertionPartitionKeys(final MultiDimensionalNumericData insertionData); @Override byte[][] getQueryPartitionKeys(
      final MultiDimensionalNumericData queryData,
      final IndexMetaData... hints); @Override byte[][] getPredefinedSplits(); public int position; }
@Test public void testGetInsertionIds() { final List<ByteArray> ids = new ArrayList<>(); final InsertionIds ids2 = sfcIndexStrategy.getInsertionIds(sfcIndexedRange, 1); final List<byte[]> compositeIds = ids2.getCompositeInsertionIds(); for (int i = 0; i < 3; i++) { for (final byte[] id2 : compositeIds) { ids.add(new ByteArray(ByteArrayUtils.combineArrays(new byte[] {(byte) i}, id2))); } } final Set<ByteArray> testIds = new HashSet<>(ids); final Set<ByteArray> compoundIndexIds = compoundIndexStrategy.getInsertionIds( sfcIndexedRange, 8).getCompositeInsertionIds().stream().map(i -> new ByteArray(i)).collect( Collectors.toSet()); Assert.assertTrue(testIds.containsAll(compoundIndexIds)); final SinglePartitionInsertionIds id2 = ids2.getPartitionKeys().iterator().next(); final MultiDimensionalCoordinates sfcIndexCoordinatesPerDim = sfcIndexStrategy.getCoordinatesPerDimension( id2.getPartitionKey(), id2.getSortKeys().get(0)); final MultiDimensionalCoordinates coordinatesPerDim = compoundIndexStrategy.getCoordinatesPerDimension( Arrays.copyOfRange(ids.get(0).getBytes(), 0, 2), Arrays.copyOfRange(ids.get(0).getBytes(), 2, ids.get(0).getBytes().length)); Assert.assertTrue(sfcIndexCoordinatesPerDim.equals(coordinatesPerDim)); }