test_class.file: ml/streaminer/src/test/java/org/streaminer/util/TestDoublyLinkedList.java
test_class.identifier: TestDoublyLinkedList
test_case.body: @Test
      public void testRemove()
      {
          DoublyLinkedList<Integer> list = new DoublyLinkedList<Integer>();
          ListNode2<Integer> node1 = list.add(1);
          list.remove(node1);
  
          node1 = list.add(1);
          ListNode2<Integer> node2 = list.add(2);
          list.remove(node1);
          assertEquals(1, list.size());
          assertEquals(new Integer(2), list.first());
          assertEquals(node2, list.head());
          assertArrayEquals(new Integer[]{2}, list.toArray());
          list.remove(node2);
          assertIsEmpty(list);
  
          node1 = list.add(1);
          node2 = list.add(2);
          list.remove(node2);
          assertEquals(1, list.size());
          assertEquals(new Integer(1), list.first());
          assertEquals(node1, list.head());
          assertArrayEquals(new Integer[]{1}, list.toArray());
  
          node2 = list.add(2);
          list.add(3);
          assertEquals(3, list.size());
          assertArrayEquals(new Integer[]{1, 2, 3}, list.toArray());
          list.remove(node2);
          assertEquals(2, list.size());
          assertEquals(node1, list.tail());
          assertEquals(new Integer(3), list.last());
          assertArrayEquals(new Integer[]{1, 3}, list.toArray());
      }
test_case.class_method_signature: TestDoublyLinkedList.testRemove()
test_case.full_signature: @Test public void testRemove()
test_case.identifier: testRemove
test_case.invocations: add remove add add remove assertEquals size assertEquals first assertEquals head assertArrayEquals toArray remove assertIsEmpty add add remove assertEquals size assertEquals first assertEquals head assertArrayEquals toArray add add assertEquals size assertArrayEquals toArray remove assertEquals size assertEquals tail assertEquals last assertArrayEquals toArray
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRemove()
focal_class.declarator: size
focal_class.modifier: protected
focal_class.original_string: protected int size;
focal_class.type: int
focal_class.var_name: size
focal_class.declarator: tail
focal_class.modifier: protected
focal_class.original_string: protected ListNode2<T> tail;
focal_class.type: ListNode2<T>
focal_class.var_name: tail
focal_class.declarator: head
focal_class.modifier: protected
focal_class.original_string: protected ListNode2<T> head;
focal_class.type: ListNode2<T>
focal_class.var_name: head
focal_class.file: ml/streaminer/src/main/java/org/streaminer/util/DoublyLinkedList.java
focal_class.identifier: DoublyLinkedList
focal_class.interfaces: implements Iterable<T>
focal_class.class_method_signature: DoublyLinkedList.add(T value)
focal_class.full_signature: public ListNode2<T> add(T value)
focal_class.identifier: add
focal_class.modifiers: public
focal_class.parameters: (T value)
focal_class.return: ListNode2<T>
focal_class.signature: ListNode2<T> add(T value)
focal_class.class_method_signature: DoublyLinkedList.enqueue(T value)
focal_class.full_signature: public ListNode2<T> enqueue(T value)
focal_class.identifier: enqueue
focal_class.modifiers: public
focal_class.parameters: (T value)
focal_class.return: ListNode2<T>
focal_class.signature: ListNode2<T> enqueue(T value)
focal_class.class_method_signature: DoublyLinkedList.add(ListNode2<T> node)
focal_class.full_signature: public void add(ListNode2<T> node)
focal_class.identifier: add
focal_class.modifiers: public
focal_class.parameters: (ListNode2<T> node)
focal_class.return: void
focal_class.signature: void add(ListNode2<T> node)
focal_class.class_method_signature: DoublyLinkedList.addAfter(ListNode2<T> node, T value)
focal_class.full_signature: public ListNode2<T> addAfter(ListNode2<T> node, T value)
focal_class.identifier: addAfter
focal_class.modifiers: public
focal_class.parameters: (ListNode2<T> node, T value)
focal_class.return: ListNode2<T>
focal_class.signature: ListNode2<T> addAfter(ListNode2<T> node, T value)
focal_class.class_method_signature: DoublyLinkedList.addAfter(ListNode2<T> node, ListNode2<T> newNode)
focal_class.full_signature: public void addAfter(ListNode2<T> node, ListNode2<T> newNode)
focal_class.identifier: addAfter
focal_class.modifiers: public
focal_class.parameters: (ListNode2<T> node, ListNode2<T> newNode)
focal_class.return: void
focal_class.signature: void addAfter(ListNode2<T> node, ListNode2<T> newNode)
focal_class.class_method_signature: DoublyLinkedList.remove(ListNode2<T> node)
focal_class.full_signature: public void remove(ListNode2<T> node)
focal_class.identifier: remove
focal_class.modifiers: public
focal_class.parameters: (ListNode2<T> node)
focal_class.return: void
focal_class.signature: void remove(ListNode2<T> node)
focal_class.class_method_signature: DoublyLinkedList.size()
focal_class.full_signature: public int size()
focal_class.identifier: size
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int size()
focal_class.class_method_signature: DoublyLinkedList.iterator()
focal_class.full_signature: @Override public Iterator<T> iterator()
focal_class.identifier: iterator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Iterator<T>
focal_class.signature: Iterator<T> iterator()
focal_class.class_method_signature: DoublyLinkedList.first()
focal_class.full_signature: public T first()
focal_class.identifier: first
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T first()
focal_class.class_method_signature: DoublyLinkedList.last()
focal_class.full_signature: public T last()
focal_class.identifier: last
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T last()
focal_class.class_method_signature: DoublyLinkedList.head()
focal_class.full_signature: public ListNode2<T> head()
focal_class.identifier: head
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ListNode2<T>
focal_class.signature: ListNode2<T> head()
focal_class.class_method_signature: DoublyLinkedList.tail()
focal_class.full_signature: public ListNode2<T> tail()
focal_class.identifier: tail
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ListNode2<T>
focal_class.signature: ListNode2<T> tail()
focal_class.class_method_signature: DoublyLinkedList.isEmpty()
focal_class.full_signature: public boolean isEmpty()
focal_class.identifier: isEmpty
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isEmpty()
focal_class.class_method_signature: DoublyLinkedList.toArray()
focal_class.full_signature: @SuppressWarnings("unchecked") public T[] toArray()
focal_class.identifier: toArray
focal_class.modifiers: @SuppressWarnings("unchecked") public
focal_class.parameters: ()
focal_class.return: T[]
focal_class.signature: T[] toArray()
focal_method.body: public void remove(ListNode2<T> node)
      {
          if (node == tail)
          {
              tail = node.next;
          }
          else
          {
              node.prev.next = node.next;
          }
  
          if (node == head)
          {
              head = node.prev;
          }
          else
          {
              node.next.prev = node.prev;
          }
          size--;
      }
focal_method.class_method_signature: DoublyLinkedList.remove(ListNode2<T> node)
focal_method.full_signature: public void remove(ListNode2<T> node)
focal_method.identifier: remove
focal_method.modifiers: public
focal_method.parameters: (ListNode2<T> node)
focal_method.return: void
focal_method.signature: void remove(ListNode2<T> node)