package testing;

import testing.Testing;
import junit.framework.TestCase;

/** Tests de la fonction findLast avec JUnit 3.8 */
public class TestFindLast extends TestCase {

	/** Test avec null */
	public void testNullArray() {
		int y = 2;
		try {
			Testing.findLast(null, y);
			fail();
		} catch (NullPointerException e) {
			// OK
		}
	}

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

	/** Test avec un tableau contenant au moins deux fois y */
	public void testMoreOneY() {
		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
	 */
	public void testOneYNotAtFirstPosition() {
		int[] x = { 3, 2, 5 };
		int y = 2;
		assertEquals(1, Testing.findLast(x, y));
	}

	/** Test avec un tableau non vide sans y */
	public void testWithoutY() {
		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 */
	public void testOneYAtFirstPosition() {
		int[] x = { 2, 3, 5 };
		int y = 2;
		assertEquals(0, Testing.findLast(x, y));
	}

}
