* fichier : test_acos.dgibi
EPS0=1d-13 ;
*===================================================================
*
* Teste le bon fonctionnement des opérateurs ACOS, ASIN, ATG et TAN
*
*===================================================================
*
* Auteur : P. Maugis, 26/09/2007
*
*===================================================================
* Teste ACOS, ASIN, ATG
* ---------------------
* il y a un petit rattrapage pour acos et asin
unplus = '+' 1. 1.D-9 ;
munplus = '-' -1. 1.D-9 ;
* flottants
x = 'ACOS' 0. ;
'SI' ('NEG' x 90. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ASIN' 1. ;
'SI' ('NEG' x 90. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ASIN' unplus ;
'SI' ('NEG' x 90. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ATG' 1.D30 ;
'SI' ('NEG' x 90. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ATG' 1. 0 ;
'SI' ('NEG' x 90. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ACOS' (2**-.5) ;
'SI' ('NEG' x 45. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ASIN' (2**-.5) ;
'SI' ('NEG' x 45. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ATG' 1. ;
'SI' ('NEG' x 45. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
x = 'ATG' 2. 2.;
'SI' ('NEG' x 45. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
* listes
l = 'PROG' unplus 1. .5 0. -.5 -1. munplus ;
l2 = 'PROG' 0. 0. 60. 90. 120. 180. 180. ;
'SI' (('MAXIMUM' (('ACOS' l) - l2) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
l3 = 'PROG' 0. (3.**.5) 1d30 (-1. * (3**.5)) -1d30 ;
l4 = 'PROG' 0. 60. 90. -60. -90. ;
'SI' (('MAXIMUM' (('ATG' l3) - l4) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
* champ-points
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
m = 'DROIT' (0 0) 4 (0 1) ;
m2 = 'DROIT' (0 0) 6 (0 1) ;
c = 'MANU' 'CHPO' 1 m2 'HOP' l ;
c2 = 'MANU' 'CHPO' 1 m2 'HOP' l2 ;
'SI' (('MAXIMUM' (('ACOS' c) - c2) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
c3 = 'MANU' 'CHPO' 1 m 'HOP' l3 ;
c4 = 'MANU' 'CHPO' 1 m 'HOP' l4 ;
'SI' (('MAXIMUM' (('ATG' c3) - c4) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
* chamelem (ici SEG2 aux noeuds)
d = 'CHANGER' 'CHAM' c m2 'NOEUD' ;
d2 = 'CHANGER' 'CHAM' c2 m2 'NOEUD' ;
'SI' (('MAXIMUM' (('ACOS' d) - d2) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
d3 = 'CHANGER' 'CHAM' c3 m 'NOEUD' ;
d4 = 'CHANGER' 'CHAM' c4 m 'NOEUD' ;
'SI' (('MAXIMUM' (('ATG' d3) - d4) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
* Teste TAN
* ---------
* flottants
x = 'TAN' 45. ;
'SI' ('NEG' x 1. EPS0) ; 'ERREUR' 5 ; 'FINSI' ;
* produit une erreur
*x = 'TAN' 90. ;
* passe
*x = 'TAN' 90. 'NOVERIF' ; mess x ;
*x = 'TAN' 270. 'NOVERIF' ; mess x ;
*x = 'TAN' -90. 'NOVERIF' ; mess x ;
*x = 'TAN' -270. 'NOVERIF' ; mess x ;
*
x = 'TAN' 90. ; mess x ;
x = 'TAN' 270. ; mess x ;
x = 'TAN' -90. ; mess x ;
x = 'TAN' -270. ; mess x ;
* listes
l5 = 'PROG' 0. 45. 60. 120. 135. 180. ;
l6 = 'PROG' 0. 1. (3.**.5) (-1. * (3**.5)) -1. 0. ;
'SI' (('MAXIMUM' (('TAN' l5) - l6) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
* champ-points
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
m = 'DROIT' (0 0) 5 (0 1) ;
c5 = 'MANU' 'CHPO' 1 m 'HOP' l5;
c6 = 'MANU' 'CHPO' 1 m 'HOP' l6 ;
'SI' (('MAXIMUM' (('TAN' c5) - c6) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
* chamelem (ici SEG2 aux noeuds)
d5 = 'CHANGER' 'CHAM' c5 m 'NOEUD' ;
d6 = 'CHANGER' 'CHAM' c6 m 'NOEUD' ;
'SI' (('MAXIMUM' (('TAN' d5) - d6) 'ABS') > EPS0) ; 'ERREUR' 5; 'FINSI';
'ERREUR' 0 ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer