aboutsummaryrefslogtreecommitdiffstats
path: root/src/junit/com/jogamp
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-02-21 07:31:12 +0100
committerSven Gothel <[email protected]>2014-02-21 07:31:12 +0100
commitc70c730b22c847668cf475dc6f841b85297ac3ab (patch)
treea2fe4b3d4f375e9ac3625c8c3ac4724257c3e7ba /src/junit/com/jogamp
parent8022ae51a072f5198409d3c81d9979456676d0cf (diff)
Bitstream: Add static 'long toUint32Long(int)' and 'int toUint32Int(int)' conversion functions
Diffstat (limited to 'src/junit/com/jogamp')
-rw-r--r--src/junit/com/jogamp/common/util/BitstreamData.java8
-rw-r--r--src/junit/com/jogamp/common/util/TestBitstream00.java23
2 files changed, 28 insertions, 3 deletions
diff --git a/src/junit/com/jogamp/common/util/BitstreamData.java b/src/junit/com/jogamp/common/util/BitstreamData.java
index 93e8ad0..b5c2c62 100644
--- a/src/junit/com/jogamp/common/util/BitstreamData.java
+++ b/src/junit/com/jogamp/common/util/BitstreamData.java
@@ -83,6 +83,9 @@ public class BitstreamData {
public static String toHexString(int v) {
return "0x"+Integer.toHexString(v);
}
+ public static String toHexString(long v) {
+ return "0x"+Long.toHexString(v);
+ }
public static final String strZeroPadding= "0000000000000000000000000000000000000000000000000000000000000000"; // 64
public static String toBinaryString(int v, int bitCount) {
if( 0 == bitCount ) {
@@ -113,7 +116,8 @@ public class BitstreamData {
return String.format("[%0"+nibbles+"X, %s]", v, toBinaryString(v, bitCount));
}
public static String toUnsignedBinaryString(final int int32) {
- final long l = 0xffffffffL & int32;
- return l+", "+toHexBinaryString(l, 32);
+ final long l = Bitstream.toUint32Long(int32);
+ final int i = Bitstream.toUint32Int(int32);
+ return "(long)"+l+", (int)"+i+", "+toHexBinaryString(l, 32);
}
}
diff --git a/src/junit/com/jogamp/common/util/TestBitstream00.java b/src/junit/com/jogamp/common/util/TestBitstream00.java
index ef1fd45..47ed1cf 100644
--- a/src/junit/com/jogamp/common/util/TestBitstream00.java
+++ b/src/junit/com/jogamp/common/util/TestBitstream00.java
@@ -35,10 +35,13 @@ import java.nio.IntBuffer;
import java.nio.LongBuffer;
import org.junit.Test;
+import org.junit.Assert;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.os.Platform;
+
import static com.jogamp.common.util.BitstreamData.*;
+
import com.jogamp.junit.util.JunitTracer;
import org.junit.FixMethodOrder;
@@ -90,7 +93,25 @@ public class TestBitstream00 extends JunitTracer {
}
@Test
- public void test01ShiftSigned() {
+ public void test01Uint32Conversion() {
+ testUInt32Conversion(1, 1);
+ testUInt32Conversion(Integer.MAX_VALUE, Integer.MAX_VALUE);
+ testUInt32Conversion(0xffff0000, -1);
+ testUInt32Conversion(0xffffffff, -1);
+ }
+ void testUInt32Conversion(final int int32, final int expUint32Int) {
+ final String int32_hStr = toHexString(int32);
+ final long l = Bitstream.toUint32Long(int32);
+ final String l_hStr = toHexString(l);
+ final int i = Bitstream.toUint32Int(int32);
+ final String i_hStr = toHexString(i);
+ System.err.printf("int32_t %012d %10s -> (long) %012d %10s, (int) %012d %10s%n", int32, int32_hStr, l, l_hStr, i, i_hStr);
+ Assert.assertEquals(int32_hStr, l_hStr);
+ Assert.assertEquals(expUint32Int, i);
+ }
+
+ @Test
+ public void test02ShiftSigned() {
shiftSigned(0xA0000000); // negative w/ '1010' top-nibble
shiftSigned(-1);
}