test_class.declarator: RFU_POSITION_IN_HEADER = 128
test_class.modifier: private static final
test_class.original_string: private static final int RFU_POSITION_IN_HEADER = 128;
test_class.type: int
test_class.var_name: RFU_POSITION_IN_HEADER
test_class.declarator: VALID_BIN_DATA_POS_OFFSET_V2 = {10, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1, -92,
              43, 121, 3, 2}
test_class.modifier: private static final
test_class.original_string: private static final byte[] VALID_BIN_DATA_POS_OFFSET_V2 = {10, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1, -92,
              43, 121, 3, 2};
test_class.type: byte[]
test_class.var_name: VALID_BIN_DATA_POS_OFFSET_V2
test_class.declarator: VALID_BIN_DATA_OFFSETS_V3 = {11, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1, -92,
              43, 121, 93, 97}
test_class.modifier: private static final
test_class.original_string: private static final byte[] VALID_BIN_DATA_OFFSETS_V3 = {11, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1, -92,
              43, 121, 93, 97};
test_class.type: byte[]
test_class.var_name: VALID_BIN_DATA_OFFSETS_V3
test_class.declarator: VALID_BIN_DATA_NO_OFFSET_V3 = {11, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1,
              -92, 43, 25}
test_class.modifier: private static final
test_class.original_string: private static final byte[] VALID_BIN_DATA_NO_OFFSET_V3 = {11, 4, 91, 91,
              35, 70, -11, 26, 108, 9, 0, -102, -2, 59, 27, -76, 4, -1, -21, -1,
              -92, 43, 25};
test_class.type: byte[]
test_class.var_name: VALID_BIN_DATA_NO_OFFSET_V3
test_class.declarator: INVALID_BIN_LOC_DATA = {
              Byte.parseByte("00001010", 2), Byte.parseByte("00000100", 2),
              Byte.parseByte("01011011", 2), Byte.parseByte("01011011", 2),
              Byte.parseByte("00100011", 2), Byte.parseByte("01000110", 2),
              Byte.parseByte("-1110100", 2), Byte.parseByte("00011010", 2),
              Byte.parseByte("01101100", 2), Byte.parseByte("00001001", 2),
              Byte.parseByte("-1111111", 2), Byte.parseByte("01100101", 2),
              Byte.parseByte("00000001", 2), Byte.parseByte("-1000101", 2),
              Byte.parseByte("00011011", 2), Byte.parseByte("-0110100", 2),
              Byte.parseByte("00000100", 2), Byte.parseByte("00000010", 2),
              Byte.parseByte("-0001011", 2), Byte.parseByte("00000000", 2),
              Byte.parseByte("01011101", 2), Byte.parseByte("00101011", 2),
              Byte.parseByte("01011001", 2)}
test_class.modifier: private static final
test_class.original_string: private static final byte[] INVALID_BIN_LOC_DATA = {
              Byte.parseByte("00001010", 2), Byte.parseByte("00000100", 2),
              Byte.parseByte("01011011", 2), Byte.parseByte("01011011", 2),
              Byte.parseByte("00100011", 2), Byte.parseByte("01000110", 2),
              Byte.parseByte("-1110100", 2), Byte.parseByte("00011010", 2),
              Byte.parseByte("01101100", 2), Byte.parseByte("00001001", 2),
              Byte.parseByte("-1111111", 2), Byte.parseByte("01100101", 2),
              Byte.parseByte("00000001", 2), Byte.parseByte("-1000101", 2),
              Byte.parseByte("00011011", 2), Byte.parseByte("-0110100", 2),
              Byte.parseByte("00000100", 2), Byte.parseByte("00000010", 2),
              Byte.parseByte("-0001011", 2), Byte.parseByte("00000000", 2),
              Byte.parseByte("01011101", 2), Byte.parseByte("00101011", 2),
              Byte.parseByte("01011001", 2)};
test_class.type: byte[]
test_class.var_name: INVALID_BIN_LOC_DATA
test_class.declarator: DECODER = new OpenLRBinaryDecoder()
test_class.modifier: private static final
test_class.original_string: private static final OpenLRBinaryDecoder DECODER = new OpenLRBinaryDecoder();
test_class.type: OpenLRBinaryDecoder
test_class.var_name: DECODER
test_class.declarator: EXPECTED_POS_OFFSET_V2 = 205
test_class.modifier: private static final
test_class.original_string: private static final int EXPECTED_POS_OFFSET_V2 = 205;
test_class.type: int
test_class.var_name: EXPECTED_POS_OFFSET_V2
test_class.declarator: EXPECTED_NEG_OFFSET_V2 = 147
test_class.modifier: private static final
test_class.original_string: private static final int EXPECTED_NEG_OFFSET_V2 = 147;
test_class.type: int
test_class.var_name: EXPECTED_NEG_OFFSET_V2
test_class.declarator: EXPECTED_POS_OFFSET_V3 = 203
test_class.modifier: private static final
test_class.original_string: private static final int EXPECTED_POS_OFFSET_V3 = 203;
test_class.type: int
test_class.var_name: EXPECTED_POS_OFFSET_V3
test_class.declarator: EXPECTED_POS_OFFSET_WP_EXAMPLE = 149
test_class.modifier: private static final
test_class.original_string: private static final int EXPECTED_POS_OFFSET_WP_EXAMPLE = 149;
test_class.type: int
test_class.var_name: EXPECTED_POS_OFFSET_WP_EXAMPLE
test_class.declarator: EXPECTED_NEG_OFFSET_V3 = 101
test_class.modifier: private static final
test_class.original_string: private static final int EXPECTED_NEG_OFFSET_V3 = 101;
test_class.type: int
test_class.var_name: EXPECTED_NEG_OFFSET_V3
test_class.declarator: validDecodeLocation
test_class.modifier: private
test_class.original_string: private RawLocationReference validDecodeLocation;
test_class.type: RawLocationReference
test_class.var_name: validDecodeLocation
test_class.file: binary/src/test/java/openlr/binary/OpenLRBinaryDecoderTest.java
test_class.identifier: OpenLRBinaryDecoderTest
test_case.body: @Test
      public final void testWhitepaperExample() {
  
          ByteArray validBinLoc = new ByteArray(
                  OpenLRBinaryEncoderTest.DATA_WP_EXAMPLE);
  
          try {
              RawLocationReference decodeData = decodeData(validBinLoc);
              Lrp[] expectedLrps = new Lrp[]{Lrp.LINE_DEC_LRP1, Lrp.LINE_DEC_LRP2_WP,
                      Lrp.LINE_DEC_LRP3_WP};
              Utils.checkDecodedLrps(decodeData, expectedLrps);
              checkOffsetsV3(decodeData.getOffsets(),
                      EXPECTED_POS_OFFSET_WP_EXAMPLE, null);
          } catch (PhysicalFormatException e) {
              fail("failed on valid input", e);
          }
      }
test_case.class_method_signature: OpenLRBinaryDecoderTest.testWhitepaperExample()
test_case.full_signature: @Test public final void testWhitepaperExample()
test_case.identifier: testWhitepaperExample
test_case.invocations: decodeData checkDecodedLrps checkOffsetsV3 getOffsets fail
test_case.modifiers: @Test public final
test_case.parameters: ()
test_case.return: void
test_case.signature: void testWhitepaperExample()
focal_class.declarator: VERSIONS = {2, 3}
focal_class.modifier: private static final
focal_class.original_string: private static final int[] VERSIONS = {2, 3};
focal_class.type: int[]
focal_class.var_name: VERSIONS
focal_class.declarator: LOG = Logger
              .getLogger(OpenLRBinaryDecoder.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = Logger
              .getLogger(OpenLRBinaryDecoder.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.file: binary/src/main/java/openlr/binary/OpenLRBinaryDecoder.java
focal_class.identifier: OpenLRBinaryDecoder
focal_class.interfaces: implements PhysicalDecoder
focal_class.class_method_signature: OpenLRBinaryDecoder.getVersions()
focal_class.full_signature: public static int[] getVersions()
focal_class.identifier: getVersions
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: int[]
focal_class.signature: int[] getVersions()
focal_class.class_method_signature: OpenLRBinaryDecoder.checkVersion(final Header h)
focal_class.full_signature: private boolean checkVersion(final Header h)
focal_class.identifier: checkVersion
focal_class.modifiers: private
focal_class.parameters: (final Header h)
focal_class.return: boolean
focal_class.signature: boolean checkVersion(final Header h)
focal_class.class_method_signature: OpenLRBinaryDecoder.parseBinaryData(final String id,
                                                   final byte[] data, final RawBinaryData binData)
focal_class.full_signature: private RawLocationReference parseBinaryData(final String id,
                                                   final byte[] data, final RawBinaryData binData)
focal_class.identifier: parseBinaryData
focal_class.modifiers: private
focal_class.parameters: (final String id,
                                                   final byte[] data, final RawBinaryData binData)
focal_class.return: RawLocationReference
focal_class.signature: RawLocationReference parseBinaryData(final String id,
                                                   final byte[] data, final RawBinaryData binData)
focal_class.class_method_signature: OpenLRBinaryDecoder.decodeData(final LocationReference lr)
focal_class.full_signature: @Override public RawLocationReference decodeData(final LocationReference lr)
focal_class.identifier: decodeData
focal_class.modifiers: @Override public
focal_class.parameters: (final LocationReference lr)
focal_class.return: RawLocationReference
focal_class.signature: RawLocationReference decodeData(final LocationReference lr)
focal_class.class_method_signature: OpenLRBinaryDecoder.getDataClass()
focal_class.full_signature: @Override public Class<?> getDataClass()
focal_class.identifier: getDataClass
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Class<?>
focal_class.signature: Class<?> getDataClass()
focal_class.class_method_signature: OpenLRBinaryDecoder.getDataFormatIdentifier()
focal_class.full_signature: @Override public String getDataFormatIdentifier()
focal_class.identifier: getDataFormatIdentifier
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getDataFormatIdentifier()
focal_class.class_method_signature: OpenLRBinaryDecoder.resolveBinaryData(final String id, final ByteArray ba)
focal_class.full_signature: public RawBinaryData resolveBinaryData(final String id, final ByteArray ba)
focal_class.identifier: resolveBinaryData
focal_class.modifiers: public
focal_class.parameters: (final String id, final ByteArray ba)
focal_class.return: RawBinaryData
focal_class.signature: RawBinaryData resolveBinaryData(final String id, final ByteArray ba)
focal_method.body: @Override
      public RawLocationReference decodeData(final LocationReference lr)
              throws PhysicalFormatException {
          Object data = lr.getLocationReferenceData();
          if (data == null || !(data instanceof ByteArray)) {
              throw new OpenLRBinaryException(
                      PhysicalFormatError.INVALID_BINARY_DATA);
          }
          ByteArray dataList = (ByteArray) data;
          return parseBinaryData(lr.getID(), dataList.getData(), null);
      }
focal_method.class_method_signature: OpenLRBinaryDecoder.decodeData(final LocationReference lr)
focal_method.full_signature: @Override public RawLocationReference decodeData(final LocationReference lr)
focal_method.identifier: decodeData
focal_method.invocations: getLocationReferenceData parseBinaryData getID getData
focal_method.modifiers: @Override public
focal_method.parameters: (final LocationReference lr)
focal_method.return: RawLocationReference
focal_method.signature: RawLocationReference decodeData(final LocationReference lr)