Skip to content

Commit e3676c2

Browse files
committed
Start work on resolving #300
1 parent 38b154b commit e3676c2

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

smile/src/test/java/com/fasterxml/jackson/dataformat/smile/gen/TestGeneratorNumbers.java renamed to smile/src/test/java/com/fasterxml/jackson/dataformat/smile/gen/SmileGeneratorNumbersTest.java

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import static org.junit.jupiter.api.Assertions.assertEquals;
1010

11-
public class TestGeneratorNumbers
11+
public class SmileGeneratorNumbersTest
1212
extends BaseTestForSmile
1313
{
1414
@Test
@@ -118,9 +118,9 @@ public void testFloats() throws Exception
118118
{
119119
// float length is fixed, 6 bytes
120120
ByteArrayOutputStream out = new ByteArrayOutputStream();
121-
SmileGenerator gen = smileGenerator(out, false);
122-
gen.writeNumber(0.125f);
123-
gen.close();
121+
try (SmileGenerator gen = smileGenerator(out, false)) {
122+
gen.writeNumber(0.125f);
123+
}
124124
assertEquals(6, out.toByteArray().length);
125125
}
126126

@@ -129,12 +129,38 @@ public void testDoubles() throws Exception
129129
{
130130
// double length is fixed, 11 bytes
131131
ByteArrayOutputStream out = new ByteArrayOutputStream();
132-
SmileGenerator gen = smileGenerator(out, false);
133-
gen.writeNumber(0.125);
134-
gen.close();
132+
try (SmileGenerator gen = smileGenerator(out, false)) {
133+
gen.writeNumber(0.125);
134+
}
135135
assertEquals(11, out.toByteArray().length);
136136
}
137137

138+
// [dataformats-binary#300]
139+
@Test
140+
public void testFloatUnusedBits() throws Exception
141+
{
142+
ByteArrayOutputStream out = new ByteArrayOutputStream();
143+
try (SmileGenerator gen = smileGenerator(out, false)) {
144+
gen.writeNumber(-0f);
145+
}
146+
byte[] encoded = out.toByteArray();
147+
assertEquals(6, encoded.length);
148+
assertEquals(0x28, encoded[0]); // type byte, float
149+
}
150+
151+
// [dataformats-binary#300]
152+
@Test
153+
public void testDoubleUnusedBits() throws Exception
154+
{
155+
ByteArrayOutputStream out = new ByteArrayOutputStream();
156+
try (SmileGenerator gen = smileGenerator(out, false)) {
157+
gen.writeNumber(-0d);
158+
}
159+
byte[] encoded = out.toByteArray();
160+
assertEquals(11, encoded.length);
161+
assertEquals(0x29, encoded[0]); // type byte, double
162+
}
163+
138164
// #16: Problems with 'Stringified' numbers
139165
@Test
140166
public void testNumbersAsString() throws Exception

0 commit comments

Comments
 (0)