Download test_acos.dgibi

Back to the list

* 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