Skip to content
Snippets Groups Projects
doubly_linked_list_test.go 1.04 KiB
package datastructure

import (
	"testing"
)

func TestAdd(t *testing.T) {
	doublyLinkedList := &DoublyLinkedList{}

	doublyLinkedList.Add(12)
	doublyLinkedList.Add(12)
	doublyLinkedList.Add(15)
	doublyLinkedList.Add(99)

	if doublyLinkedList.GetSize() != 4 {
		t.Error("the size of the list is wrong")
	}
}

func TestDelete(t *testing.T) {
	doublyLinkedList := &DoublyLinkedList{}

	doublyLinkedList.Add(12)
	doublyLinkedList.Add(13)
	doublyLinkedList.Add(15)
	doublyLinkedList.Add(99)

	if _, err := doublyLinkedList.RemoveFirst(); err != nil {
		t.Error(err)
	}

	firstEntry, err := doublyLinkedList.GetFirst()
	if err != nil {
		t.Error(err)
	}
	if firstEntry != 13 {
		t.Error("first entry should be 13 after delete")
	}

	if _, err := doublyLinkedList.RemoveLast(); err != nil {
		t.Error(err)
	}

	lastEntry, err := doublyLinkedList.GetLast()
	if err != nil {
		t.Error(err)
	}
	if lastEntry != 15 {
		t.Error("last entry should be 15 after delete")
	}

	if doublyLinkedList.GetSize() != 2 {
		t.Error("the size of the list should be 2 after delete")
	}
}