Github user jackylk commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2657#discussion_r212822441
  
    --- Diff: 
core/src/test/java/org/apache/carbondata/core/util/ByteUtilTest.java ---
    @@ -17,156 +17,246 @@
     package org.apache.carbondata.core.util;
     
     import junit.framework.TestCase;
    +
     import org.apache.carbondata.core.constants.CarbonCommonConstants;
     import org.apache.carbondata.core.util.ByteUtil.UnsafeComparer;
    +
     import org.junit.Before;
     import org.junit.Test;
     
     import java.nio.ByteBuffer;
     import java.nio.charset.Charset;
     
    -
     /**
      * This test will test the functionality of the Byte Util
      * for the comparision of 2 byte buffers
      */
     public class ByteUtilTest extends TestCase {
     
    -    String dimensionValue1 = "aaaaaaaa1235";
    -    String dimensionValue2 = "aaaaaaaa1234";
    -    private ByteBuffer buff1;
    -    private ByteBuffer buff2;
    -
    -    /**
    -     * This method will form one single byte [] for all the high card dims.
    -     *
    -     * @param byteBufferArr
    -     * @return
    -     */
    -    public static byte[] packByteBufferIntoSingleByteArray(
    -            ByteBuffer[] byteBufferArr) {
    -        // for empty array means there is no data to remove dictionary.
    -        if (null == byteBufferArr || byteBufferArr.length == 0) {
    -            return null;
    -        }
    -        int noOfCol = byteBufferArr.length;
    -        short toDetermineLengthOfByteArr = 2;
    -        short offsetLen = (short) (noOfCol * 2 + 
toDetermineLengthOfByteArr);
    -        int totalBytes = calculateTotalBytes(byteBufferArr) + offsetLen;
    -
    -        ByteBuffer buffer = ByteBuffer.allocate(totalBytes);
    -
    -        // write the length of the byte [] as first short
    -        buffer.putShort((short) (totalBytes - toDetermineLengthOfByteArr));
    -        // writing the offset of the first element.
    -        buffer.putShort(offsetLen);
    -
    -        // prepare index for byte []
    -        for (int index = 0; index < byteBufferArr.length - 1; index++) {
    -            ByteBuffer individualCol = byteBufferArr[index];
    -            // short lengthOfbytes = individualCol.getShort();
    -            int noOfBytes = individualCol.capacity();
    -
    -            buffer.putShort((short) (offsetLen + noOfBytes));
    -            offsetLen += noOfBytes;
    -            individualCol.rewind();
    -        }
    -
    -        // put actual data.
    -        for (int index = 0; index < byteBufferArr.length; index++) {
    -            ByteBuffer individualCol = byteBufferArr[index];
    -            buffer.put(individualCol.array());
    -        }
    -
    -        buffer.rewind();
    -        return buffer.array();
    +  String dimensionValue1 = "aaaaaaaa1235";
    +  String dimensionValue2 = "aaaaaaaa1234";
    +  private ByteBuffer buff1;
    +  private ByteBuffer buff2;
     
    +  /**
    +   * This method will form one single byte [] for all the high card dims.
    +   *
    +   * @param byteBufferArr
    +   * @return
    +   */
    +  public static byte[] packByteBufferIntoSingleByteArray(ByteBuffer[] 
byteBufferArr) {
    +    // for empty array means there is no data to remove dictionary.
    +    if (null == byteBufferArr || byteBufferArr.length == 0) {
    +      return null;
         }
    +    int noOfCol = byteBufferArr.length;
    +    short toDetermineLengthOfByteArr = 2;
    +    short offsetLen = (short) (noOfCol * 2 + toDetermineLengthOfByteArr);
    +    int totalBytes = calculateTotalBytes(byteBufferArr) + offsetLen;
     
    -    /**
    -     * To calculate the total bytes in byte Buffer[].
    -     *
    -     * @param byteBufferArr
    -     * @return
    -     */
    -    private static int calculateTotalBytes(ByteBuffer[] byteBufferArr) {
    -        int total = 0;
    -        for (int index = 0; index < byteBufferArr.length; index++) {
    -            total += byteBufferArr[index].capacity();
    -        }
    -        return total;
    -    }
    +    ByteBuffer buffer = ByteBuffer.allocate(totalBytes);
     
    -    /**
    -     * @throws Exception
    -     */
    -    @Before
    -    public void setUp() throws Exception {
    +    // write the length of the byte [] as first short
    +    buffer.putShort((short) (totalBytes - toDetermineLengthOfByteArr));
    +    // writing the offset of the first element.
    +    buffer.putShort(offsetLen);
     
    -    }
    -
    -    @Test
    -    public void testLessThan() {
    -        dimensionValue1 = "aaaaa6aa1235";
    -        dimensionValue2 = "aaaaa5aa1234";
    +    // prepare index for byte []
    +    for (int index = 0; index < byteBufferArr.length - 1; index++) {
    +      ByteBuffer individualCol = byteBufferArr[index];
    +      // short lengthOfbytes = individualCol.getShort();
    +      int noOfBytes = individualCol.capacity();
     
    -        prepareBuffers();
    -        assertFalse(UnsafeComparer.INSTANCE.compareTo(buff1, buff2) < 0);
    +      buffer.putShort((short) (offsetLen + noOfBytes));
    +      offsetLen += noOfBytes;
    +      individualCol.rewind();
         }
    -    @Test
    -    public void testIntConversion() {
    -        byte[] data = new byte[4];
    -        ByteUtil.setInt(data, 0, 968);
    -        assertEquals(ByteUtil.toInt(data, 0), 968);
    +
    +    // put actual data.
    +    for (int index = 0; index < byteBufferArr.length; index++) {
    +      ByteBuffer individualCol = byteBufferArr[index];
    +      buffer.put(individualCol.array());
         }
     
    -    @Test
    -    public void testEqualToCase() {
    -        dimensionValue1 = "aaaaaaaa1234";
    -        dimensionValue2 = "aaaaaaaa1234";
    +    buffer.rewind();
    +    return buffer.array();
     
    -        prepareBuffers();
    -        assertTrue(UnsafeComparer.INSTANCE.compareTo(buff1, buff2) == 0);
    +  }
    +
    +  /**
    +   * To calculate the total bytes in byte Buffer[].
    +   *
    +   * @param byteBufferArr
    +   * @return
    +   */
    +  private static int calculateTotalBytes(ByteBuffer[] byteBufferArr) {
    +    int total = 0;
    +    for (int index = 0; index < byteBufferArr.length; index++) {
    +      total += byteBufferArr[index].capacity();
         }
    +    return total;
    +  }
     
    -    @Test
    -    public void testLessThanInBoundaryCondition() {
    -        dimensionValue1 = "aaaaaaaa12341";
    -        dimensionValue2 = "aaaaaaaa12344";
    +  /**
    +   * @throws Exception
    +   */
    +  @Before public void setUp() throws Exception {
     
    -        prepareBuffers();
    -        assertTrue(UnsafeComparer.INSTANCE.compareTo(buff1, buff2) < 0);
    -    }
    +  }
     
    -    /**
    -     * This will prepare the byte buffers in the required format for 
comparision.
    -     */
    -    private void prepareBuffers() {
    -        ByteBuffer[] out1 = new ByteBuffer[1];
    -        ByteBuffer buffer = ByteBuffer.allocate(dimensionValue1.length());
    -        
buffer.put(dimensionValue1.getBytes(Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET)));
    -        buffer.rewind();
    -        out1[0] = buffer;
    +  @Test public void testLessThan() {
    +    dimensionValue1 = "aaaaa6aa1235";
    +    dimensionValue2 = "aaaaa5aa1234";
     
    +    prepareBuffers();
    +    assertFalse(UnsafeComparer.INSTANCE.compareTo(buff1, buff2) < 0);
    +  }
     
    -        ByteBuffer[] out2 = new ByteBuffer[1];
    +  @Test public void testIntConversion() {
    +    byte[] data = new byte[4];
    +    ByteUtil.setInt(data, 0, 968);
    +    assertEquals(ByteUtil.toInt(data, 0), 968);
    +  }
     
    -        ByteBuffer buffer2 = ByteBuffer.allocate(dimensionValue2.length());
    -        
buffer2.put(dimensionValue2.getBytes(Charset.forName(CarbonCommonConstants.DEFAULT_CHARSET)));
    -        buffer2.rewind();
    -        out2[0] = buffer2;
    +  @Test public void testEqualToCase() {
    +    dimensionValue1 = "aaaaaaaa1234";
    +    dimensionValue2 = "aaaaaaaa1234";
     
    -        byte[] arr1 = packByteBufferIntoSingleByteArray(out1);
    -        byte[] arr2 = packByteBufferIntoSingleByteArray(out2);
    +    prepareBuffers();
    +    assertTrue(UnsafeComparer.INSTANCE.compareTo(buff1, buff2) == 0);
    +  }
     
    -        buff1 = ByteBuffer.wrap(arr1);
    +  @Test public void testLessThanInBoundaryCondition() {
    --- End diff --
    
    move annotation to previous line


---

Reply via email to