### Question:
InsnList { public void insertBefore(final AbstractInsnNode nextInsn, final AbstractInsnNode insnNode) { ++size; AbstractInsnNode previousInsn = nextInsn.previousInsn; if (previousInsn == null) { firstInsn = insnNode; } else { previousInsn.nextInsn = insnNode; } nextInsn.previousInsn = insnNode; insnNode.nextInsn = nextInsn; insnNode.previousInsn = previousInsn; cache = null; insnNode.index = 0; }  int size(); AbstractInsnNode getFirst(); AbstractInsnNode getLast(); AbstractInsnNode get(final int index); boolean contains(final AbstractInsnNode insnNode); int indexOf(final AbstractInsnNode insnNode); void accept(final MethodVisitor methodVisitor); ListIterator<AbstractInsnNode> iterator(); @SuppressWarnings("unchecked") ListIterator<AbstractInsnNode> iterator(final int index); AbstractInsnNode[] toArray(); void set(final AbstractInsnNode oldInsnNode, final AbstractInsnNode newInsnNode); void add(final AbstractInsnNode insnNode); void add(final InsnList insnList); void insert(final AbstractInsnNode insnNode); void insert(final InsnList insnList); void insert(final AbstractInsnNode previousInsn, final AbstractInsnNode insnNode); void insert(final AbstractInsnNode previousInsn, final InsnList insnList); void insertBefore(final AbstractInsnNode nextInsn, final AbstractInsnNode insnNode); void insertBefore(final AbstractInsnNode nextInsn, final InsnList insnList); void remove(final AbstractInsnNode insnNode); void clear(); void resetLabels();  }### Answer:
@Test public void testInsertBefore_noSuchElement() { InsnList insnList = newInsnList(insn1, insn2); Executable insertBefore = () -> insnList.insertBefore(new InsnNode(0), new InsnNode(0)); assertThrows(NoSuchElementException.class, insertBefore); }
@Test public void testInsertListBefore_noSuchElement() { InsnList insnList = newInsnList(insn1, insn2); Executable insertBefore = () -> insnList.insertBefore(new InsnNode(0), newInsnList()); assertThrows(NoSuchElementException.class, insertBefore); }