package com.anuragkapur.pie.linkedlists;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author anuragkapur
*/
public class MthFromLastInLinkedListTest {
MthFromLastInLinkedList<Integer> mthFromLastInLinkedList = new MthFromLastInLinkedList<>();
@Test
public void testGetElement1() throws Exception {
LinkedListElement<Integer> head = null;
assertEquals(null, mthFromLastInLinkedList.getElement(head, 0));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 1));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 5));
}
@Test
public void testGetElement2() throws Exception {
LinkedListElement<Integer> head = new LinkedListElement<>();
head.setData(1);
assertEquals(Integer.valueOf(1), mthFromLastInLinkedList.getElement(head, 0));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 1));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 5));
}
@Test
public void testGetElement3() throws Exception {
LinkedListElement<Integer> head = new LinkedListElement<>();
head.setData(1);
LinkedListElement<Integer> e1 = new LinkedListElement<>();
e1.setData(2);
head.setNext(e1);
assertEquals(Integer.valueOf(2), mthFromLastInLinkedList.getElement(head, 0));
assertEquals(Integer.valueOf(1), mthFromLastInLinkedList.getElement(head, 1));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 2));
}
@Test
public void testGetElement4() throws Exception {
LinkedListElement<Integer> head = new LinkedListElement<>();
head.setData(1);
LinkedListElement<Integer> e1 = new LinkedListElement<>();
e1.setData(2);
LinkedListElement<Integer> e2 = new LinkedListElement<>();
e2.setData(3);
head.setNext(e1);
e1.setNext(e2);
assertEquals(Integer.valueOf(3), mthFromLastInLinkedList.getElement(head, 0));
assertEquals(Integer.valueOf(2), mthFromLastInLinkedList.getElement(head, 1));
assertEquals(Integer.valueOf(1), mthFromLastInLinkedList.getElement(head, 2));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 3));
assertEquals(null, mthFromLastInLinkedList.getElement(head, 11));
}
}