package testing;

import static org.junit.Assert.*;

import org.junit.Test;

import testing.Testing;

/** Tests de la fonction findLast avec JUnit 4 */
public class TestFindLastV4 {

	/** Test avec null */
	@Test(expected = NullPointerException.class)
	public void nullArray() {
		int y = 2;
		Testing.findLast(null, y);
	}

	/** Test avec un tableau vide */
	@Test
	public void emptyArray() {
		int[] x = {};
		int y = 2;
		assertEquals(-1, Testing.findLast(x, y));
	}

	/** Test avec un tableau contenant au moins deux fois y */
	@Test
	public void moreOneY() {
		int[] x = { 2, 2, 5 };
		int y = 2;
		assertEquals(1, Testing.findLast(x, y));
	}

	/** Test avec un tableau contenant une seule fois y, mais pas à la première position */
	@Test
	public void oneYNotAtFirstPosition() {
		int[] x = { 3, 2, 5 };
		int y = 2;
		assertEquals(1, Testing.findLast(x, y));
	}

	/** Test avec un tableau non vide sans y */
	@Test
	public void withoutY() {
		int[] x = { 1, 3, 5 };
		int y = 2;
		assertEquals(-1, Testing.findLast(x, y));
	}

	/** Test avec un tableau dont le premier élément est y */
	@Test
	public void oneYAtFirstPosition() {
		int[] x = { 2, 3, 5 };
		int y = 2;
		assertEquals(0, Testing.findLast(x, y));
	}

}
