Skip to content

Commit

Permalink
remove reverse in ByteFunctionHelpers
Browse files Browse the repository at this point in the history
  • Loading branch information
tianchen92 committed Jul 11, 2019
1 parent 41030c4 commit dbd0923
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ private ByteFunctionHelpers() {}
* @param right Right ArrowBuf for comparison
* @param rStart start offset in the buffer
* @param rEnd end offset in the buffer
* @return 1 if left input is greater, -1 if left input is smaller, 0 otherwise
* @return 1 if equals, 0 otherwise
*/
public static final int equal(final ArrowBuf left, int lStart, int lEnd, final ArrowBuf right, int rStart, int rEnd) {
if (BoundsChecking.BOUNDS_CHECKING_ENABLED) {
Expand Down Expand Up @@ -138,7 +138,7 @@ private static int memcmp(
long leftLong = PlatformDependent.getLong(lPos);
long rightLong = PlatformDependent.getLong(rPos);
if (leftLong != rightLong) {
return unsignedLongCompare(Long.reverseBytes(leftLong), Long.reverseBytes(rightLong));
return unsignedLongCompare(leftLong, rightLong);
}
lPos += 8;
rPos += 8;
Expand All @@ -149,7 +149,7 @@ private static int memcmp(
int leftInt = PlatformDependent.getInt(lPos);
int rightInt = PlatformDependent.getInt(rPos);
if (leftInt != rightInt) {
return unsignedIntCompare(Integer.reverseBytes(leftInt), Integer.reverseBytes(rightInt));
return unsignedIntCompare(leftInt, rightInt);
}
lPos += 4;
rPos += 4;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.arrow.vector.util;

import static org.junit.Assert.assertEquals;

import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.memory.RootAllocator;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import io.netty.buffer.ArrowBuf;

public class TestByteFunctionHelpers {

private BufferAllocator allocator;

private static final int SIZE = 100;

@Before
public void init() {
allocator = new RootAllocator(Long.MAX_VALUE);

}

@After
public void terminate() throws Exception {
allocator.close();
}

@Test
public void testEquals() {
ArrowBuf buffer1 = allocator.buffer(SIZE);
ArrowBuf buffer2 = allocator.buffer(SIZE);

for (int i = 0; i < SIZE; i++) {
buffer1.setByte(i, i);
buffer2.setByte(i, i);
}

assertEquals(1, ByteFunctionHelpers.equal(buffer1, 0, SIZE - 1,
buffer2, 0, SIZE - 1));

buffer1.setByte(50, 10);

assertEquals(0, ByteFunctionHelpers.equal(buffer1, 0, SIZE - 1,
buffer2, 0, SIZE - 1));

buffer1.close();
buffer2.close();

}

@Test
public void testCompare() {
ArrowBuf buffer1 = allocator.buffer(SIZE);
ArrowBuf buffer2 = allocator.buffer(SIZE);

for (int i = 0; i < SIZE; i++) {
buffer1.setByte(i, i);
buffer2.setByte(i, i);
}

assertEquals(0, ByteFunctionHelpers.compare(buffer1, 0, SIZE - 1,
buffer2, 0, SIZE - 1));

buffer1.setByte(50, 10);

assertEquals(-1, ByteFunctionHelpers.compare(buffer1, 0, SIZE - 1,
buffer2, 0, SIZE - 1));

buffer1.close();
buffer2.close();

}
}

0 comments on commit dbd0923

Please sign in to comment.