Skip to content

Commit 819a8e3

Browse files
dfa1claude
andcommitted
test(reader): reuse TestArrays builders in OffsetArrayTest
Drop the duplicated int/long/double/bool array builders added for the Offset slice tests; use the shared TestArrays factories instead. Byte/Short stay local since they need U8/U16 dtypes for the unsigned-widening assertions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 11287da commit 819a8e3

1 file changed

Lines changed: 25 additions & 69 deletions

File tree

reader/src/test/java/io/github/dfa1/vortex/reader/array/OffsetArrayTest.java

Lines changed: 25 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -144,101 +144,57 @@ void foldReducesSlicedRange() {
144144
class Bool {
145145
@Test
146146
void getBooleanShiftsByOffset() {
147-
try (Arena arena = Arena.ofConfined()) {
148-
// Given — packed bits [F, T, T, F]
149-
BoolArray inner = boolArray(arena, false, true, true, false);
150-
var sut = new OffsetBoolArray(new DType.Bool(false), 2, inner, 1L);
147+
// Given — bits [F, T, T, F]
148+
BoolArray inner = TestArrays.bools(false, true, true, false);
149+
var sut = new OffsetBoolArray(new DType.Bool(false), 2, inner, 1L);
151150

152-
// When / Then
153-
assertThat(sut.getBoolean(0)).isTrue(); // inner[1]
154-
assertThat(sut.getBoolean(1)).isTrue(); // inner[2]
155-
assertThat(sut.length()).isEqualTo(2);
156-
}
151+
// When / Then
152+
assertThat(sut.getBoolean(0)).isTrue(); // inner[1]
153+
assertThat(sut.getBoolean(1)).isTrue(); // inner[2]
154+
assertThat(sut.length()).isEqualTo(2);
157155
}
158156
}
159157

160158
@Nested
161159
class Int {
162160
@Test
163161
void getIntShiftsByOffset() {
164-
try (Arena arena = Arena.ofConfined()) {
165-
// Given
166-
IntArray inner = intArray(arena, 10, 20, 30, 40);
167-
var sut = new OffsetIntArray(new DType.Primitive(PType.I32, false), 2, inner, 2L);
162+
// Given
163+
IntArray inner = TestArrays.ints(10, 20, 30, 40);
164+
var sut = new OffsetIntArray(new DType.Primitive(PType.I32, false), 2, inner, 2L);
168165

169-
// When / Then
170-
assertThat(sut.getInt(0)).isEqualTo(30);
171-
assertThat(sut.getInt(1)).isEqualTo(40);
172-
}
166+
// When / Then
167+
assertThat(sut.getInt(0)).isEqualTo(30);
168+
assertThat(sut.getInt(1)).isEqualTo(40);
173169
}
174170
}
175171

176172
@Nested
177173
class Long {
178174
@Test
179175
void getLongShiftsByOffset() {
180-
try (Arena arena = Arena.ofConfined()) {
181-
// Given
182-
LongArray inner = longArray(arena, 5L, 6L, 7L, 8L);
183-
var sut = new OffsetLongArray(new DType.Primitive(PType.I64, false), 2, inner, 1L);
176+
// Given
177+
LongArray inner = TestArrays.longs(5L, 6L, 7L, 8L);
178+
var sut = new OffsetLongArray(new DType.Primitive(PType.I64, false), 2, inner, 1L);
184179

185-
// When / Then
186-
assertThat(sut.getLong(0)).isEqualTo(6L);
187-
assertThat(sut.getLong(1)).isEqualTo(7L);
188-
}
180+
// When / Then
181+
assertThat(sut.getLong(0)).isEqualTo(6L);
182+
assertThat(sut.getLong(1)).isEqualTo(7L);
189183
}
190184
}
191185

192186
@Nested
193187
class Double {
194188
@Test
195189
void getDoubleShiftsByOffset() {
196-
try (Arena arena = Arena.ofConfined()) {
197-
// Given
198-
DoubleArray inner = doubleArray(arena, 1.5, 2.5, 3.5);
199-
var sut = new OffsetDoubleArray(new DType.Primitive(PType.F64, false), 2, inner, 1L);
190+
// Given
191+
DoubleArray inner = TestArrays.doubles(1.5, 2.5, 3.5);
192+
var sut = new OffsetDoubleArray(new DType.Primitive(PType.F64, false), 2, inner, 1L);
200193

201-
// When / Then
202-
assertThat(sut.getDouble(0)).isEqualTo(2.5);
203-
assertThat(sut.getDouble(1)).isEqualTo(3.5);
204-
}
205-
}
206-
}
207-
208-
private static BoolArray boolArray(Arena arena, boolean... vs) {
209-
MemorySegment seg = arena.allocate((vs.length + 7) / 8);
210-
for (int i = 0; i < vs.length; i++) {
211-
if (vs[i]) {
212-
long bi = i >>> 3;
213-
byte b = seg.get(ValueLayout.JAVA_BYTE, bi);
214-
seg.set(ValueLayout.JAVA_BYTE, bi, (byte) ((b & 0xff) | (1 << (i & 7))));
215-
}
216-
}
217-
return new MaterializedBoolArray(new DType.Bool(false), vs.length, seg.asReadOnly());
218-
}
219-
220-
private static IntArray intArray(Arena arena, int... vs) {
221-
MemorySegment seg = arena.allocate(vs.length * 4L, 4);
222-
for (int i = 0; i < vs.length; i++) {
223-
seg.setAtIndex(ValueLayout.JAVA_INT, i, vs[i]);
224-
}
225-
return new MaterializedIntArray(new DType.Primitive(PType.I32, false), vs.length, seg.asReadOnly());
226-
}
227-
228-
private static LongArray longArray(Arena arena, long... vs) {
229-
MemorySegment seg = arena.allocate(vs.length * 8L, 8);
230-
for (int i = 0; i < vs.length; i++) {
231-
seg.setAtIndex(ValueLayout.JAVA_LONG, i, vs[i]);
232-
}
233-
return new MaterializedLongArray(new DType.Primitive(PType.I64, false), vs.length, seg.asReadOnly());
234-
}
235-
236-
private static DoubleArray doubleArray(Arena arena, double... vs) {
237-
MemorySegment seg = arena.allocate(vs.length * 8L, 8);
238-
for (int i = 0; i < vs.length; i++) {
239-
seg.setAtIndex(ValueLayout.JAVA_DOUBLE, i, vs[i]);
194+
// When / Then
195+
assertThat(sut.getDouble(0)).isEqualTo(2.5);
196+
assertThat(sut.getDouble(1)).isEqualTo(3.5);
240197
}
241-
return new MaterializedDoubleArray(new DType.Primitive(PType.F64, false), vs.length, seg.asReadOnly());
242198
}
243199

244200
private static ByteArray byteArray(Arena arena, byte... vs) {

0 commit comments

Comments
 (0)