### Question:
IFA_LLBNUM extends ISOFieldPackager { public byte[] pack (ISOComponent c) throws ISOException { String s = (String) c.getValue(); int len = s.length(); if (len > getLength() || len>99) throw new ISOException ( "invalid len "+len +" packing IFA_LLBNUM field " + c.getKey() ); byte[] b = new byte[2 + ((len+1) >> 1)]; prefixer.encodeLength(len + 1 >> 1 << 1, b); interpreter.interpret(s, b, 2); return b; } IFA_LLBNUM();  IFA_LLBNUM(int len, String description, boolean pad); void setPad(boolean pad); byte[] pack(ISOComponent c); int unpack(ISOComponent c, byte[] b, int offset); void unpack(ISOComponent c, InputStream in); int getMaxPackedLength();  }### Answer:
@Test public void testPack() throws Exception { ISOField field = new ISOField(12, "123"); IFA_LLBNUM packager = new IFA_LLBNUM(10, "Should be 0x30340123", true); TestUtils.assertEquals(new byte[]{0x30, 0x34, 0x01, 0x23}, packager.pack(field)); }
@Test public void testPackIssue329() throws Exception { ISOField field = new ISOField(12, "1234567890123456"); IFA_LLBNUM packager = new IFA_LLBNUM(99, "Should be 1234567890123456", true); TestUtils.assertEquals(new byte[]{0x31, 0x36, 0x12, 0x34, 0x56, 0x78, (byte) 0x90, 0x12, 0x34, 0x56}, packager.pack(field)); }