package rationnels;

/** classe de test pour l'exception dans la classe rationnels.Rationnel */

public class TestRationnelException {
  public static void main(String[] args) {
    System.out.println("TestRationnelException");
    Rationnel r, r1, r2;

    try {
    System.out.println("\n1er essai\nconstruction");
    r=new Rationnel(15,0);
    System.out.println("r = "+r+"\ninverse");
    r1 = r.inverse();
    System.out.println("r1 = "+r1+"\ninverse de somme");
    r2 = r.somme(new Rationnel(-4,11)).inverse();
    System.out.println("r2 = "+r2);
    } catch(Exception e){System.out.println(e+"\nerreur dans le 1er essai");}

    try {
    System.out.println("\n2ème essai\nconstruction");
    r=new Rationnel(0,15);
    System.out.println("r = "+r+"\ninverse");
    r1 = r.inverse();
    System.out.println("r1 = "+r1+"\ninverse de somme");
    r2 = (r.somme(new Rationnel(-4,11))).inverse();
    System.out.println("r2 = "+r2);
    } catch(Exception e){System.out.println(e+"\nerreur dans le 2ème essai");}

    try {
    System.out.println("\n3ème essai\nconstruction");
    r=new Rationnel(2,5);
    System.out.println("r = "+r+"\ninverse");
    r1 = r.inverse();
    System.out.println("r1 = "+r1+"\ninverse de somme");
    r2 = r.somme(new Rationnel(-4,10)).inverse();
    System.out.println("r2 = "+r2);
    } catch(Exception e){System.out.println(e+"\nerreur dans le 3ème essai");}

    try {
    System.out.println("\n4ème essai\nconstruction");
    r=new Rationnel(2,5);
    System.out.println("r = "+r+"\ninverse");
    r1 = r.inverse();
    System.out.println("r1 = "+r1+"\ninverse de somme");
    r2 = r.somme(new Rationnel(-4,11)).inverse();
    System.out.println("r2 = "+r2);
    } catch(Exception e){System.out.println(e+"\nerreur dans le 4ème essai");}

  }
}

/*
sans throw ni try catch
========================
TestRationnelException

1er essai
construction
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at rationnels.Rationnel.pgcd(Rationnel.java:27)
	at rationnels.Rationnel.simplifier(Rationnel.java:33)
	at rationnels.Rationnel.<init>(Rationnel.java:11)
	at rationnels.TestRationnelException.main(TestRationnelException.java:19)

avec throw sans try catch
==========================
TestRationnelException

1er essai
construction
Exception in thread "main" java.lang.ArithmeticException: le dénominateur ne peut être nul
	at rationnels.Rationnel.<init>(Rationnel.java:10)
	at rationnels.TestRationnelException.main(TestRationnelException.java:19)

sans throw avec try catch
==========================
TestRationnelException

1er essai
construction
java.lang.ArithmeticException: / by zero
erreur dans le 1er essai

2ème essai
construction
r = 0
inverse
java.lang.ArithmeticException: / by zero
erreur dans le 2ème essai

3ème essai
construction
r = 2/5
inverse
r1 = 5/2
inverse de somme
java.lang.ArithmeticException: / by zero
erreur dans le 3ème essai

4ème essai
construction
r = 2/5
inverse
r1 = 5/2
inverse de somme
r2 = 55/2

avec throw et try catch
========================
TestRationnelException

1er essai
construction
java.lang.ArithmeticException: le dénominateur ne peut être nul
erreur dans le 1er essai

2ème essai
construction
r = 0
inverse
java.lang.ArithmeticException: le dénominateur ne peut être nul
erreur dans le 2ème essai

3ème essai
construction
r = 2/5
inverse
r1 = 5/2
inverse de somme
java.lang.ArithmeticException: le dénominateur ne peut être nul
erreur dans le 3ème essai

4ème essai
construction
r = 2/5
inverse
r1 = 5/2
inverse de somme
r2 = 55/2

*/
