Skip to content

Commit 11323f5

Browse files
dfa1claude
andcommitted
fix: update SparseEncodingEncoderTest for #232 MaskedArray wrapping
decodeVarBin now returns MaskedArray when fill is null (#232); the two decode_utf8_* encoder tests cast directly to VarBinArray and broke on CI. Unwrap to inner() and assert validity on the masked rows. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent bbf63f5 commit 11323f5

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

writer/src/test/java/io/github/dfa1/vortex/writer/encode/SparseEncodingEncoderTest.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -331,10 +331,13 @@ void decode_utf8_noPatches_allEmpty() {
331331
// When
332332
Array result = DECODER.decode(ctx);
333333

334-
// Then
334+
// Then — null fill wraps the VarBin values in a MaskedArray whose rows are all
335+
// invalid (#232); the inner values are still zero-length strings.
335336
assertThat(result.length()).isEqualTo(3L);
336-
VarBinArray varBin = (VarBinArray) result;
337+
MaskedArray masked = (MaskedArray) result;
338+
VarBinArray varBin = (VarBinArray) masked.inner();
337339
for (int i = 0; i < 3; i++) {
340+
assertThat(masked.isValid(i)).as("valid index %d", i).isFalse();
338341
assertThat(varBin.getByteLength(i)).as("index %d", i).isZero();
339342
}
340343
}
@@ -375,14 +378,18 @@ void decode_utf8_withPatches_writesStringsAtIndices() {
375378
// When
376379
Array result = DECODER.decode(ctx);
377380

378-
// Then
379-
VarBinArray varBin = (VarBinArray) result;
381+
// Then — null fill: unpatched rows 0/2/4 are null, patched rows 1/3 carry the
382+
// strings and are valid (#232). Unwrap the MaskedArray to reach the VarBin values.
383+
MaskedArray masked = (MaskedArray) result;
384+
VarBinArray varBin = (VarBinArray) masked.inner();
380385
assertThat(varBin.length()).isEqualTo(5L);
381-
assertThat(varBin.getByteLength(0)).isZero();
386+
assertThat(masked.isValid(0)).isFalse();
387+
assertThat(masked.isValid(1)).isTrue();
382388
assertThat(varBin.getString(1)).isEqualTo("hi");
383-
assertThat(varBin.getByteLength(2)).isZero();
389+
assertThat(masked.isValid(2)).isFalse();
390+
assertThat(masked.isValid(3)).isTrue();
384391
assertThat(varBin.getString(3)).isEqualTo("bye");
385-
assertThat(varBin.getByteLength(4)).isZero();
392+
assertThat(masked.isValid(4)).isFalse();
386393
}
387394

388395
@Test

0 commit comments

Comments
 (0)