/* 
   TEST DES TYPES ET PROTOTYPES POUR LA BIBLIOTHEQUE POLYNOME 

   Ce programme a pour but de verifier le prototypage des fonctions et
   l'orthographe des types utilises.  Il permet de deceler une erreur
   d'orthographe ou de casse dans le nom d'un type ou d'une fonction.
   Il est a noter que ce programme ne valide pas la bibliotheque.

   Il se compile avec la commande suivante (sans aucune modification)
   gcc test_prototypage.c polynome.o -lm -o test_prototypage
*/

#include <stdio.h>
#include "polynome.h"

int main() {
  // Verification de l'orthographe du type polynome 
  polynome P, Q, R;

  // Verification de l'orthographe du type nuage
  nuage NuageDePoints;

  // Verification du prototypage de SommePolynomes, Reel2Polynome et PolynomeX
  P=SommePolynomes(Reel2Polynome(2),PolynomeX());

  // Verification du prototypage de ProduitPolynomes, ProduitPolynomeScalaire
  Q=ProduitPolynomes(ProduitPolynomeScalaire(P,5.0),PolynomeX());
  
  // Verification du prototypage de AfficherPolynome
  AfficherPolynome(P);

  // Verification du prototypage de EvaluationPolynome
  printf("P(1)=%lf\n",EvaluationPolynome(P,1.0));

  // Verification du prototypage de DegrePolynome et ValuationPolynome 
  printf("degre P=%d, valuation P=%d\n",DegrePolynome(P),ValuationPolynome(P));

  // Verification du prototypage de LirePolynome
  printf("Entrer un polynome R\n");
  LirePolynome(&R);

  // Verification du prototypage de EgalitePolynomes
  if (EgalitePolynomes(P,R))
    printf("P=R\n");
  else
    printf("P!=R\n");

  // Verification du prototypage de LireNuage
  printf("Entrer 4 points\n");
  LireNuage(4,&NuageDePoints);

  // Verification du prototypage de AfficherPolynome
  AfficherPolynome(InterpolationPolynomiale(NuageDePoints));

  return 0;
}


