import java.util.NoSuchElementException;

public class TestDequeue {
    public static void main(String[] args) {
        // Créer une instance de SimpleQueue
        SimpleQueue<Integer> queue = new SimpleQueue<>();

        // Tester le comportement de dequeue sur une file vide
        System.out.println("Test 1 : Déqueue sur une file vide");
        try {
            queue.dequeue(); // Doit lever une exception
        } catch (NoSuchElementException e) {
            System.out.println("Exception levée correctement : " + e.getMessage());
        }

        // Ajouter des éléments à la file
        queue.enqueue(10);
        queue.enqueue(20);
        queue.enqueue(30);

        // Tester dequeue pour retirer des éléments dans l'ordre
        System.out.println("\nTest 2 : Déqueue sur une file avec des éléments");
        System.out.println("Défile : " + queue.dequeue()); // Doit afficher 10
        System.out.println("Défile : " + queue.dequeue()); // Doit afficher 20
        System.out.println("Défile : " + queue.dequeue()); // Doit afficher 30

        // Vérifier que la file est vide après tous les retraits
        System.out.println("\nTest 3 : Vérifier si la file est vide après tous les retraits");
        System.out.println("La file est vide ? " + queue.isEmpty()); // true

        // Retenter dequeue sur une file vide
        System.out.println("\nTest 4 : Déqueue sur une file vide après avoir vidé tous les éléments");
        try {
            queue.dequeue(); // Doit lever une exception
        } catch (NoSuchElementException e) {
            System.out.println("Exception levée correctement : " + e.getMessage());
        }
    }
}
