public void testEncodedSortability() {
    Random random = newRandom();
    byte[] originalArray1 = new byte[MAX_RANDOM_BINARY_LENGTH];
    ByteBuffer originalBuf1 = ByteBuffer.wrap(originalArray1);
    char[] originalString1 = new char[MAX_RANDOM_BINARY_LENGTH];
    CharBuffer originalStringBuf1 = CharBuffer.wrap(originalString1);
    char[] encoded1 = new char[IndexableBinaryStringTools.getEncodedLength(originalBuf1)];
    CharBuffer encodedBuf1 = CharBuffer.wrap(encoded1);
    byte[] original2 = new byte[MAX_RANDOM_BINARY_LENGTH];
    ByteBuffer originalBuf2 = ByteBuffer.wrap(original2);
    char[] originalString2 = new char[MAX_RANDOM_BINARY_LENGTH];
    CharBuffer originalStringBuf2 = CharBuffer.wrap(originalString2);
    char[] encoded2 = new char[IndexableBinaryStringTools.getEncodedLength(originalBuf2)];
    CharBuffer encodedBuf2 = CharBuffer.wrap(encoded2);
    for (int testNum = 0 ; testNum < NUM_RANDOM_TESTS ; ++testNum) {
      int numBytes1 = random.nextInt(MAX_RANDOM_BINARY_LENGTH - 1) + 1; // Min == 1
      originalBuf1.limit(numBytes1);
      originalStringBuf1.limit(numBytes1);
      
      for (int byteNum = 0 ; byteNum < numBytes1 ; ++byteNum) {
        int randomInt = random.nextInt(0x100);
        originalArray1[byteNum] = (byte) randomInt;
        originalString1[byteNum] = (char)randomInt;
      }
      
      int numBytes2 = random.nextInt(MAX_RANDOM_BINARY_LENGTH - 1) + 1; // Min == 1
      originalBuf2.limit(numBytes2);
      originalStringBuf2.limit(numBytes2);
      for (int byteNum = 0 ; byteNum < numBytes2 ; ++byteNum) {
        int randomInt = random.nextInt(0x100);
        original2[byteNum] = (byte)randomInt;
        originalString2[byteNum] = (char)randomInt;
      }
      int originalComparison = originalStringBuf1.compareTo(originalStringBuf2);
      originalComparison = originalComparison < 0 ? -1 : originalComparison > 0 ? 1 : 0;
      
      IndexableBinaryStringTools.encode(originalBuf1, encodedBuf1);
      IndexableBinaryStringTools.encode(originalBuf2, encodedBuf2);
      
      int encodedComparison = encodedBuf1.compareTo(encodedBuf2);
      encodedComparison = encodedComparison < 0 ? -1 : encodedComparison > 0 ? 1 : 0;
      
      assertEquals("Test #" + (testNum + 1) 
                   + ": Original bytes and encoded chars compare differently:"
                   + System.getProperty("line.separator")
                   + " binary 1: " + binaryDump(originalBuf1)
                   + System.getProperty("line.separator")
                   + " binary 2: " + binaryDump(originalBuf2)
                   + System.getProperty("line.separator")
                   + "encoded 1: " + charArrayDump(encodedBuf1)
                   + System.getProperty("line.separator")
                   + "encoded 2: " + charArrayDump(encodedBuf2)
                   + System.getProperty("line.separator"),
                   originalComparison, encodedComparison);
    }
  }