Skip to content

Commit 3657e20

Browse files
committed
update Java version
1 parent 3e0f672 commit 3657e20

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/main/java/com/upokecenter/cbor/CBORUtilities.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1123,9 +1123,12 @@ public static long IntegerToDoubleBits(int i) {
11231123
if (i == Integer.MIN_VALUE) {
11241124
return (long)0xc1e0000000000000L;
11251125
}
1126+
if (i == 0) {
1127+
return 0L;
1128+
}
11261129
long longmant = Math.abs(i);
11271130
int expo = 0;
1128-
while (longmant < (1 << 52)) {
1131+
while (longmant < (1L << 52)) {
11291132
longmant <<= 1;
11301133
--expo;
11311134
}

src/test/java/com/upokecenter/test/CBORObjectTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9487,6 +9487,29 @@ public void TestFromJsonStringFastCases() {
94879487
0);
94889488
}
94899489

9490+
@Test(timeout = 10000)
9491+
public void TestFromJsonStringSmallDouble() {
9492+
CBORObject cbor;
9493+
AssertJSONDouble("0","double",0.0);
9494+
cbor=FromJSON("[0, 1, 2, 3]", "double");
9495+
Assert.assertEquals(4, cbor.size());
9496+
Assert.assertEquals(0.0, cbor.get(0).AsDouble());
9497+
Assert.assertEquals(1.0, cbor.get(1).AsDouble());
9498+
Assert.assertEquals(2.0, cbor.get(2).AsDouble());
9499+
Assert.assertEquals(3.0, cbor.get(3).AsDouble());
9500+
cbor=FromJSON("[0]", "double");
9501+
Assert.assertEquals(1, cbor.size());
9502+
Assert.assertEquals(0.0, cbor.get(0).AsDouble());
9503+
cbor=FromJSON("[-0]", "double");
9504+
Assert.assertEquals(1, cbor.size());
9505+
cbor=FromJSON("[1]", "double");
9506+
Assert.assertEquals(1, cbor.size());
9507+
Assert.assertEquals(1.0, cbor.get(0).AsDouble());
9508+
cbor=FromJSON("[-1]", "double");
9509+
Assert.assertEquals(1, cbor.size());
9510+
Assert.assertEquals(-1.0, cbor.get(0).AsDouble());
9511+
}
9512+
94909513
@Test(timeout = 10000)
94919514
public void TestFromJsonStringLongKindFull() {
94929515
JSONOptions jsonop = new JSONOptions("numberconversion=full");

0 commit comments

Comments
 (0)