package testing;

import org.junit.*;

import testing.Testing;

import static org.junit.Assert.*;

/** Tests de la fonction lastZero */
public class TestLastZeroV4 {

	/** Test avec null */
	@Test(expected = NullPointerException.class)
	public void nullArray() {
		Testing.lastZero(null);
	}

	/** Test avec un tableau ŕ un élément nul */
	@Test
	public void singleZero() {
		int[] x = { 0 };
		assertEquals(0, Testing.lastZero(x));
	}

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

	/** Test avec un tableau ŕ un élénement non nul */
	@Test
	public void singleNonZero() {
		int[] x = { 1 };
		assertEquals(-1, Testing.lastZero(x));
	}

	/** Test avec un tableau non vide sans zéro */
	@Test
	public void withoutZero() {
		int[] x = { 1, 2, 3 };
		assertEquals(-1, Testing.lastZero(x));
	}

	/** Test avec un tableau de plus d'un élément contenant un zéro */
	@Test
	public void oneZero() {
		int[] x = { 1, 0, 1 };
		assertEquals(1, Testing.lastZero(x));
	}

	/** Test avec un tableau contenant plus d'un zéro */
	@Test
	public void moreOneZero() {
		int[] x = { 0, 1, 0 };
		assertEquals(2, Testing.lastZero(x));
	}

}
