Skip to content

Commit ca1d5e4

Browse files
committed
1 parent fff2200 commit ca1d5e4

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed
Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package io.kaitai.struct.spec;
22

3+
import io.kaitai.struct.ArrayRegion;
4+
import io.kaitai.struct.PositionInfo;
5+
import io.kaitai.struct.Region;
36
import io.kaitai.struct.testformats.Debug0;
47
import org.testng.annotations.Test;
58

69
import java.util.ArrayList;
710
import java.util.Arrays;
811

912
import static org.testng.Assert.assertEquals;
13+
import static org.testng.Assert.assertFalse;
14+
import static org.testng.Assert.assertTrue;
1015

1116
public class TestDebug0 extends CommonSpec {
1217
@Test
@@ -19,12 +24,30 @@ public void testDebug0() throws Exception {
1924

2025
assertEquals(Debug0._seqFields, new String[] { "one", "arrayOfInts", "_unnamed2" });
2126

22-
assertEquals(r._attrStart.get("one").intValue(), 0);
23-
assertEquals(r._attrEnd.get("one").intValue(), 1);
24-
assertEquals(r._attrStart.get("arrayOfInts").intValue(), 1);
25-
assertEquals(r._attrEnd.get("arrayOfInts").intValue(), 4);
27+
assertTrue(r instanceof PositionInfo, "Structure in debug mode should implement PositionInfo");
28+
assertEquals(r._regions().size(), 3, "Position information should exists for each field");
2629

27-
assertEquals(r._arrStart.get("arrayOfInts").toArray(), new Integer[] { 1, 2, 3 });
28-
assertEquals(r._arrEnd.get("arrayOfInts").toArray(), new Integer[] { 2, 3, 4 });
30+
final Region oneRegion = r._regions().get("one");
31+
assertFalse(oneRegion instanceof ArrayRegion, "Non-Array region shouldn't be instanceof ArrayRegion");
32+
assertEquals(oneRegion.start, 0);
33+
assertEquals(oneRegion.end, 1);
34+
35+
final Region arrayRegion = r._regions().get("arrayOfInts");
36+
assertEquals(arrayRegion.start, 1);
37+
assertEquals(arrayRegion.end, 4);
38+
39+
assertTrue(arrayRegion instanceof ArrayRegion, "Array region should be instanceof ArrayRegion");
40+
41+
final ArrayRegion array = (ArrayRegion)arrayRegion;
42+
assertEquals(array.items.size(), 3);
43+
44+
final long[] starts = { 1, 2, 3 };
45+
final long[] ends = { 2, 3, 4 };
46+
int i = 0;
47+
for (final Region region : array.items) {
48+
assertEquals(region.start, starts[i]);
49+
assertEquals(region.end, ends[i]);
50+
++i;
51+
}
2952
}
3053
}

0 commit comments

Comments
 (0)