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(dependsOnMethods = {"testValidData"})
      public final void testValidDataBase64() {
  
          ByteArray validBinLoc = new ByteArray(Base64
                  .encodeBase64String(VALID_BIN_DATA_POS_OFFSET_V2));
          RawLocationReference decodeData = null;
          try {
              decodeData = decodeData(validBinLoc);
          } catch (PhysicalFormatException e) {
              fail("failed on valid input", e);
          }
  
          // Verify the data against them from the byte[] input
          List<? extends LocationReferencePoint> b64Points = decodeData
                  .getLocationReferencePoints();
          List<? extends LocationReferencePoint> templateLRPs = validDecodeLocation
                  .getLocationReferencePoints();
          LocationReferencePoint currentPoint;
          LocationReferencePoint currentB64Point;
          for (int i = 0; i < templateLRPs.size(); i++) {
              currentPoint = templateLRPs.get(i);
              currentB64Point = b64Points.get(i);
  
              assertEquals(currentPoint.getBearing(), currentB64Point
                      .getBearing());
              assertEquals(currentPoint.getDistanceToNext(), currentB64Point
                      .getDistanceToNext());
              assertEquals(currentPoint.getFOW(), currentB64Point.getFOW());
              assertEquals(currentPoint.getFRC(), currentB64Point.getFRC());
              assertEquals(currentPoint.getLatitudeDeg(), currentB64Point
                      .getLatitudeDeg());
              assertEquals(currentPoint.getLongitudeDeg(), currentB64Point
                      .getLongitudeDeg());
              assertEquals(currentPoint.getLfrc(), currentB64Point.getLfrc());
          }
  
          Offsets b64Offset = decodeData.getOffsets();
          Offsets templateOffsets = validDecodeLocation.getOffsets();
          assertEquals(templateOffsets.hasPositiveOffset(), b64Offset
                  .hasPositiveOffset());
          assertEquals(templateOffsets.hasNegativeOffset(), b64Offset
                  .hasNegativeOffset());
          assertEquals(templateOffsets.getPositiveOffset(0), b64Offset
                  .getPositiveOffset(0));
          assertEquals(templateOffsets.getNegativeOffset(0), b64Offset
                  .getNegativeOffset(0));
      }
test_case.class_method_signature: OpenLRBinaryDecoderTest.testValidDataBase64()
test_case.full_signature: @Test(dependsOnMethods = {"testValidData"}) public final void testValidDataBase64()
test_case.identifier: testValidDataBase64
test_case.invocations: encodeBase64String decodeData fail getLocationReferencePoints getLocationReferencePoints size get get assertEquals getBearing getBearing assertEquals getDistanceToNext getDistanceToNext assertEquals getFOW getFOW assertEquals getFRC getFRC assertEquals getLatitudeDeg getLatitudeDeg assertEquals getLongitudeDeg getLongitudeDeg assertEquals getLfrc getLfrc getOffsets getOffsets assertEquals hasPositiveOffset hasPositiveOffset assertEquals hasNegativeOffset hasNegativeOffset assertEquals getPositiveOffset getPositiveOffset assertEquals getNegativeOffset getNegativeOffset
test_case.modifiers: @Test(dependsOnMethods = {"testValidData"}) public final
test_case.parameters: ()
test_case.return: void
test_case.signature: void testValidDataBase64()
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)