Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Mingun committed Feb 27, 2020
1 parent fff2200 commit ca1d5e4
Showing 1 changed file with 29 additions and 6 deletions.
35 changes: 29 additions & 6 deletions spec/java/src/io/kaitai/struct/spec/TestDebug0.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package io.kaitai.struct.spec;

import io.kaitai.struct.ArrayRegion;
import io.kaitai.struct.PositionInfo;
import io.kaitai.struct.Region;
import io.kaitai.struct.testformats.Debug0;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.Arrays;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;

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

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

assertEquals(r._attrStart.get("one").intValue(), 0);
assertEquals(r._attrEnd.get("one").intValue(), 1);
assertEquals(r._attrStart.get("arrayOfInts").intValue(), 1);
assertEquals(r._attrEnd.get("arrayOfInts").intValue(), 4);
assertTrue(r instanceof PositionInfo, "Structure in debug mode should implement PositionInfo");
assertEquals(r._regions().size(), 3, "Position information should exists for each field");

assertEquals(r._arrStart.get("arrayOfInts").toArray(), new Integer[] { 1, 2, 3 });
assertEquals(r._arrEnd.get("arrayOfInts").toArray(), new Integer[] { 2, 3, 4 });
final Region oneRegion = r._regions().get("one");
assertFalse(oneRegion instanceof ArrayRegion, "Non-Array region shouldn't be instanceof ArrayRegion");
assertEquals(oneRegion.start, 0);
assertEquals(oneRegion.end, 1);

final Region arrayRegion = r._regions().get("arrayOfInts");
assertEquals(arrayRegion.start, 1);
assertEquals(arrayRegion.end, 4);

assertTrue(arrayRegion instanceof ArrayRegion, "Array region should be instanceof ArrayRegion");

final ArrayRegion array = (ArrayRegion)arrayRegion;
assertEquals(array.items.size(), 3);

final long[] starts = { 1, 2, 3 };
final long[] ends = { 2, 3, 4 };
int i = 0;
for (final Region region : array.items) {
assertEquals(region.start, starts[i]);
assertEquals(region.end, ends[i]);
++i;
}
}
}

0 comments on commit ca1d5e4

Please sign in to comment.