Télécharger mucham.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : mucham.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' 'ECHO' 0 ;
  5. ***********************************************************************
  6. * NOM : MUCHAM *
  7. * DESCRIPTION : Cas-test de l'operateur '*' (et '/') *
  8. * Ce cas-test verifie la multiplication et la division de MCHAMLs *
  9. * *
  10. * *
  11. * Suite aux fiches anomalie 9461, 9474 *
  12. * on verifie qu'avec la syntaxe * *
  13. * ou on precise les noms des composantes *
  14. * intervenant dans chaque produit ainsi que celui de la composante *
  15. * resultat a l'aide de trois LISMOTS : *
  16. * - CHAM3 = CHMA1 * CHMA2 LISMOTS1 LISMOTS2 LISMOTS3 ; *
  17. * que les trois LISTMOTS sont bien pris en compte meme si les *
  18. * champs arguments sont de type "SCALAIRE" *
  19. * *
  20. * 2018/01/16 : pareil pour / *
  21. * *
  22. * *
  23. * *
  24. * LANGAGE : GIBIANE-CAST3M *
  25. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SEMT/LTA) *
  26. * mél : stephane.gounand@cea.fr *
  27. ***********************************************************************
  28. * VERSION : v1, 19/06/2017, version initiale *
  29. * HISTORIQUE : v1, 19/06/2017, création *
  30. * HISTORIQUE : 2018/01/16 : teste aussi / *
  31. * HISTORIQUE : *
  32. ***********************************************************************
  33. *
  34. * Verifie qu'un champ n'a qu'une composante qui correspond au mot donne
  35. *
  36. 'DEBP' VERCOMP ;
  37. 'ARGU' cham*'MCHAML' ;
  38. 'ARGU' nocover*'MOT' ;
  39. *
  40. noco = 'EXTR' cham 'COMP' ;
  41. dnoco = 'DIME' noco ;
  42. tst1 = 'EGA' dnoco 1 ;
  43. 'SI' ('NON' tst1) ;
  44. 'MESS' '!!! Le champ a plus dune composante' ;
  45. 'FINS' ;
  46. mo = 'EXTR' noco 1 ;
  47. tst2 = 'EGA' mo nocover ;
  48. 'SI' ('NON' tst2) ;
  49. 'MESS' '!!! La composante est : ' mo ;
  50. 'MESS' '!!! Elle devrait etre : ' nocover ;
  51. 'FINS' ;
  52. lok = tst1 'ET' tst2 ;
  53. 'RESP' lok ;
  54. 'FINP' ;
  55. *
  56. * Verifie le min et le max d'un champ
  57. *
  58. 'DEBP' VERMIMA ;
  59. 'ARGU' cham*'MCHAML' ;
  60. 'ARGU' vmin*'FLOTTANT' ;
  61. 'ARGU' vmax*'FLOTTANT' ;
  62. *
  63. lok = vrai ;
  64. mich = 'MINI' cham ; mach = 'MAXI' cham ;
  65. vref = 'MAXI' ('PROG' vmin vmax ('**' ('VALE' 'PETI') 0.5)) 'ABS' ;
  66. tol = '*' vref ('VALE' 'PREC') ;
  67. tst3 = 'EGA' mich vmin tol ;
  68. tst4 = 'EGA' mach vmax tol ;
  69. 'SI' ('NON' tst3) ;
  70. 'MESS' '!!! Le min. du champ est : ' mich ;
  71. 'MESS' '!!! Il devrait etre : ' vmin ;
  72. 'FINS' ;
  73. 'SI' ('NON' tst4) ;
  74. 'MESS' '!!! Le max. du champ est : ' mach ;
  75. 'MESS' '!!! Il devrait etre : ' vmax ;
  76. 'FINS' ;
  77. lok = tst3 'ET' tst4 ;
  78. 'RESP' lok ;
  79. 'FINP' ;
  80. *
  81. *
  82. graph = faux ;
  83. interact = faux ;
  84. 'OPTI' 'DIME' 1 'ELEM' 'SEG2' ;
  85. pA = 'POIN' ('*' -1. PI) ; pB = 'POIN' PI ;
  86. mt = 'DROI' 2 pA pB ;
  87. *
  88. lok = vrai ;
  89. *
  90. * Test 1 avec des champs crees par MANU CHML
  91. *
  92. ch1 = 'MANU' 'CHML' mt 'SCAL' ('**' 2. 0.5) ;
  93. ch2 = 'MANU' 'CHML' mt 'UX' PI ;
  94. vs = PI '*' ('**' 2. 0.5) ;
  95. ch3 = '*' ch1 ch2 ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  96. *
  97. lok = lok 'ET' (VERCOMP ch3 'TUX') ;
  98. lok = lok 'ET' (VERMIMA ch3 vs vs) ;
  99. *
  100. ch3p = '*' ch2 ch1 ('MOTS' 'UX') ('MOTS' 'SCAL') ('MOTS' 'TUX') ;
  101. *
  102. lok = lok 'ET' (VERCOMP ch3p 'TUX') ;
  103. lok = lok 'ET' (VERMIMA ch3p vs vs) ;
  104. *
  105. ch1b = 'MANU' 'CHML' mt 'SCAL' ('**' 2. 0.5) 'TYPE' 'SCALAIRE' ;
  106. ch3b = '*' ch1b ch2 ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  107. *
  108. lok = lok 'ET' (VERCOMP ch3b 'TUX') ;
  109. lok = lok 'ET' (VERMIMA ch3b vs vs) ;
  110. *
  111. ch2b = 'MANU' 'CHML' mt 'UX' PI 'TYPE' 'SCALAIRE' ;
  112. ch3c = '*' ch1 ch2b ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  113. *
  114. lok = lok 'ET' (VERCOMP ch3c 'TUX') ;
  115. lok = lok 'ET' (VERMIMA ch3c vs vs) ;
  116. *
  117. ch3d = '*' ch1b ch2b ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  118. *
  119. lok = lok 'ET' (VERCOMP ch3d 'TUX') ;
  120. lok = lok 'ET' (VERMIMA ch3d vs vs) ;
  121. *
  122. * Test 2 avec des champs crees par COOR et CHAN CHAM
  123. *
  124. vs = '**' PI 2. ; vprec = '*' ('VALE' 'PREC') vs ;
  125. mmt = 'MODE' mt 'MECANIQUE' ;
  126. xmt = 'COOR' 1 mt ;
  127. cxmt = 'CHAN' 'CHAM' xmt mt ;
  128. cxmtt = 'CHAN' 'CHAM' ('NOMC' 'T' xmt) mt ;
  129. cxmt2 = '*' cxmt cxmtt ('MOTS' 'SCAL') ('MOTS' 'T') ('MOTS' 'UXX') ;
  130. lok = lok 'ET' (VERCOMP cxmt2 'UXX') ;
  131. lok = lok 'ET' (VERMIMA cxmt2 0. vs) ;
  132. cxmt2p = '*' cxmtt cxmt ('MOTS' 'T') ('MOTS' 'SCAL') ('MOTS' 'UXX') ;
  133. lok = lok 'ET' (VERCOMP cxmt2p 'UXX') ;
  134. lok = lok 'ET' (VERMIMA cxmt2p 0. vs) ;
  135. cxmt2q = '*' cxmt cxmt ('MOTS' 'SCAL') ('MOTS' 'SCAL')
  136. ('MOTS' 'UXX') ;
  137. lok = lok 'ET' (VERCOMP cxmt2q 'UXX') ;
  138. lok = lok 'ET' (VERMIMA cxmt2q 0. vs) ;
  139. cxmt2r = '*' cxmtt cxmtt ('MOTS' 'T') ('MOTS' 'T')
  140. ('MOTS' 'UXX') ;
  141. lok = lok 'ET' (VERCOMP cxmt2r 'UXX') ;
  142. lok = lok 'ET' (VERMIMA cxmt2r 0. vs) ;
  143. *
  144. * Test 3 pour la division avec des champs crees par MANU CHML
  145. *
  146. ch1 = 'MANU' 'CHML' mt 'SCAL' ('**' 2. 0.5) ;
  147. ch2 = 'MANU' 'CHML' mt 'UX' PI ;
  148. vs1 = ('**' 2. 0.5) '/' PI ;
  149. vs2 = PI '/' ('**' 2. 0.5) ;
  150. ch3 = '/' ch1 ch2 ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  151. *
  152. lok = lok 'ET' (VERCOMP ch3 'TUX') ;
  153. lok = lok 'ET' (VERMIMA ch3 vs1 vs1) ;
  154. *
  155. ch3p = '/' ch2 ch1 ('MOTS' 'UX') ('MOTS' 'SCAL') ('MOTS' 'TUX') ;
  156. *
  157. lok = lok 'ET' (VERCOMP ch3p 'TUX') ;
  158. lok = lok 'ET' (VERMIMA ch3p vs2 vs2) ;
  159. *
  160. ch1b = 'MANU' 'CHML' mt 'SCAL' ('**' 2. 0.5) 'TYPE' 'SCALAIRE' ;
  161. ch3b = '/' ch1b ch2 ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  162. *
  163. lok = lok 'ET' (VERCOMP ch3b 'TUX') ;
  164. lok = lok 'ET' (VERMIMA ch3b vs1 vs1) ;
  165. *
  166. ch2b = 'MANU' 'CHML' mt 'UX' PI 'TYPE' 'SCALAIRE' ;
  167. ch3c = '/' ch1 ch2b ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  168. *
  169. lok = lok 'ET' (VERCOMP ch3c 'TUX') ;
  170. lok = lok 'ET' (VERMIMA ch3c vs1 vs1) ;
  171. *
  172. ch3d = '/' ch1b ch2b ('MOTS' 'SCAL') ('MOTS' 'UX') ('MOTS' 'TUX') ;
  173. *
  174. lok = lok 'ET' (VERCOMP ch3d 'TUX') ;
  175. lok = lok 'ET' (VERMIMA ch3d vs1 vs1) ;
  176. *
  177. * Test 4 pour la division avec des champs crees par COOR et CHAN CHAM
  178. *
  179. mt = 'DROI' 3 pA pB ;
  180. vs = '**' PI 2. ; vprec = '*' ('VALE' 'PREC') vs ;
  181. vmin = '**' (PI '/' 3.) 2 ;
  182. mmt = 'MODE' mt 'MECANIQUE' ;
  183. xmt = 'COOR' 1 mt ;
  184. ixmt = 'INVE' xmt ;
  185. cxmt = 'CHAN' 'CHAM' xmt mt ;
  186. cxmtt = 'CHAN' 'CHAM' ('NOMC' 'T' xmt) mt ;
  187. cixmt = 'CHAN' 'CHAM' ixmt mt ;
  188. cixmtt = 'CHAN' 'CHAM' ('NOMC' 'T' ixmt) mt ;
  189. cxmt2 = '/' cxmt cixmtt ('MOTS' 'SCAL') ('MOTS' 'T') ('MOTS' 'UXX') ;
  190. lok = lok 'ET' (VERCOMP cxmt2 'UXX') ;
  191. lok = lok 'ET' (VERMIMA cxmt2 vmin vs) ;
  192. cxmt2p = '/' cxmtt cixmt ('MOTS' 'T') ('MOTS' 'SCAL') ('MOTS' 'UXX') ;
  193. lok = lok 'ET' (VERCOMP cxmt2p 'UXX') ;
  194. lok = lok 'ET' (VERMIMA cxmt2p vmin vs) ;
  195. cxmt2q = '/' cxmt cixmt ('MOTS' 'SCAL') ('MOTS' 'SCAL')
  196. ('MOTS' 'UXX') ;
  197. lok = lok 'ET' (VERCOMP cxmt2q 'UXX') ;
  198. lok = lok 'ET' (VERMIMA cxmt2q vmin vs) ;
  199. cxmt2r = '/' cxmtt cixmtt ('MOTS' 'T') ('MOTS' 'T')
  200. ('MOTS' 'UXX') ;
  201. lok = lok 'ET' (VERCOMP cxmt2r 'UXX') ;
  202. lok = lok 'ET' (VERMIMA cxmt2r vmin vs) ;
  203. *
  204. * Test final
  205. *
  206. 'SI' ('NON' lok) ;
  207. 'ERREUR' 5 ;
  208. 'SINON' ;
  209. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  210. 'FINSI' ;
  211. *
  212. 'SI' interact ;
  213. 'OPTION' 'ECHO' 1 ;
  214. 'OPTION' 'DONN' 5 ;
  215. 'FINSI' ;
  216. *
  217. * End of dgibi file MUCHAM
  218. *
  219. 'FIN' ;
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales