Télécharger ordo_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : ordo_1.dgibi
  2.  
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. * CAS-TEST DE VERIFICATION DU FONCTIONNEMENT DE L'OPERATEUR ORDO ET
  7. * DE TOUTES SES OPTIONS (HORS 'COUT' => VOIR ORDO_2.DGIBI)
  8. *
  9. *
  10. * GRAINE POUR LE GENERATEUR ALEATOIRE
  11. SEED1 = 13 ;
  12. *
  13. * LONGUEUR DES LISTES GENEREES
  14. NN1 = 7 ;
  15. *
  16. * CHEMIN D'ACCES AU FICHIER DE LISTING
  17. FICHMD5 = 'ordo_1.txt' ;
  18. *
  19. * VALIDER LE BON FONCTIONNEMENT DU CAS-TEST
  20. * "MANUELLEMENT" (= EN RELISANT LE LISTING)
  21. * PUIS REPORTER CI-DESSOUS LA SOMME MD5 ATTENDUE
  22. MD5LINUX = 'bd8d6531904bfa13eb1f5549ae191607' ;
  23. MD5WINDO = 'd2e3fc06af052cc9bdd28342f7acd062' ;
  24.  
  25.  
  26. *********************************************************************
  27. * *
  28. * G E N E R A T I O N D E S L I S T E S *
  29. * *
  30. *********************************************************************
  31.  
  32.  
  33. * LISTMOTS
  34. * ========
  35. LMOT1 = MOTS 'DEfa' 'BLEU' 'RoUg' 'ROse' 'VeRT' 'tURQ' 'JaUN' 'BLAn'
  36. 'NoIR' 'VIOl' 'ORAn' 'AzUR' 'OCEA' 'cYAN' 'OLIV' 'GRiS'
  37. 'DEFA' 'BLEU' 'ROUG' 'ROSE' 'VERT' 'TURQ' 'JAUN' 'BLAN'
  38. 'NOIR' 'VIOL' 'ORAN' 'AZUR' 'OCEA' 'CYAN' 'OLIV' 'GRIS'
  39. 'defa' 'bleu' 'roug' 'rose' 'vert' 'turq' 'jaun' 'blan'
  40. 'NoIR' 'ViOL' 'ORaN' 'AZUr' 'OCEa' 'CYAN' 'OLIv' 'GriS'
  41. 'dEFA' 'blEU' 'rouG' 'ROse' 'vERt' 'tUrq' 'JaUN' 'BlaN'
  42. 'NOiR' 'vIOl' 'OraN' 'AZuR' 'OcEa' 'cYAN' 'OLiv' 'GrIS' ;
  43. NBCOUL = DIME LMOT1 ;
  44. LPOS1 = ENTI (BRUI 'BLAN' 'UNIF' (0.5*NBCOUL) (0.5*NBCOUL) NN1 SEED1) ;
  45. LPOS1 = BORN LPOS1 'COMPRIS' 1 NBCOUL ;
  46. LMOT1 = EXTR LMOT1 LPOS1 ;
  47.  
  48. * LISTREEL
  49. * ========
  50. LREE1 = BRUI 'BLAN' 'UNIF' 0. 5. NN1 SEED1 ;
  51.  
  52. * LISTENTI
  53. * ========
  54. LENT1 = ENTI (BRUI 'BLAN' 'UNIF' 0. NN1 NN1 SEED1) ;
  55.  
  56.  
  57.  
  58.  
  59. *********************************************************************
  60. * *
  61. * P R O C E D U R E S P O U R V E R I F I E R L E J E U *
  62. * D E D O N N E E S *
  63. * *
  64. *********************************************************************
  65.  
  66. OPTI 'SORT' FICHMD5 ;
  67. *
  68. DEBP TESTER LST ;
  69. NB = DIME LST ;
  70. CHA = ' ' ;
  71. REPE K NB ;
  72. OBJ = EXTR LST &K ;
  73. TYP = TYPE OBJ ;
  74. SI (EGA TYP 'FLOTTANT') ;
  75. * FORMAT FORTRAN AYANT LE MEME COMPORTEMENT SUR TOUTES LES
  76. * MACHINES DE TEST
  77. CHA = CHAI CHA ' ' 'FORMAT' '(F0.3)' OBJ ;
  78. SINON ;
  79. CHA = CHAI CHA ' ' OBJ ;
  80. FINS ;
  81. FIN K ;
  82. SORT 'CHAI' CHA ;
  83. LIST LST ;
  84. FINP ;
  85. *
  86. DEBP VALIDER ;
  87. * ON FERME LE FICHIER DE LISTING
  88. OPTI 'SORT' FICHMD5 ;
  89. *
  90. * ON CALCULE LE HASH MD5
  91. * (SANS PLANTAGE SI LA COMMANDE md5sum N'EXISTE PAS)
  92. OPTI 'ERRE' 'CONTINUER' ;
  93. TAB1 = EXTE (CHAI 'md5sum' ' ' FICHMD5) ;
  94. list tab1;
  95. OPTI 'ERRE' 'NORMAL' ;
  96. * VALIDATION DU HASH MD5
  97. SI (EXIS TAB1) ;
  98. MD5 = MOT TAB1. 1 ;
  99. RESP ((EGA MD5 MD5LINUX) OU (EGA MD5 MD5WINDO)) ;
  100. SINON ;
  101. RESP VRAI ;
  102. FINS ;
  103. FINP ;
  104.  
  105.  
  106.  
  107. ******************************
  108. * *
  109. * L I S T R E E L *
  110. * *
  111. ******************************
  112.  
  113.  
  114.  
  115. * OPTIONS SIMPLES
  116. * ===============
  117.  
  118. LIST LREE1 ;
  119. SAUT 2 'LIGNES' ;
  120.  
  121. TESTER (ORDO LREE1) ;
  122. SAUT 2 'LIGNES' ;
  123.  
  124. TESTER (ORDO LREE1 'ABSO') ;
  125. SAUT 2 'LIGNES' ;
  126.  
  127. TESTER (ORDO LREE1 'DECR') ;
  128. SAUT 2 'LIGNES' ;
  129.  
  130. TESTER (ORDO LREE1 'UNIQ') ;
  131. SAUT 2 'LIGNES' ;
  132.  
  133. TESTER (ORDO LREE1 'UNIQ' 0.5) ;
  134. SAUT 2 'LIGNES' ;
  135.  
  136.  
  137.  
  138. * OPTIONS COUPLEES
  139. * ================
  140.  
  141. LIST LREE1 ;
  142. SAUT 2 'LIGNES' ;
  143.  
  144. TESTER (ORDO LREE1 'UNIQ' 0.5 'DECR') ;
  145. SAUT 2 'LIGNES' ;
  146.  
  147. TESTER (ORDO 'ABSO' LREE1 'UNIQ' 0.5 'DECR') ;
  148. SAUT 2 'LIGNES' ;
  149.  
  150. TESTER (ORDO 'ABSO' 'DECR' LREE1) ;
  151. SAUT 2 'LIGNES' ;
  152.  
  153. TESTER (ORDO 'ABSO' LREE1 'UNIQ') ;
  154. SAUT 2 'LIGNES' ;
  155.  
  156.  
  157.  
  158. * TRI MULTIPLE
  159. * ============
  160.  
  161. LIST LREE1 ; LIST LENT1 ; LIST LMOT1 ;
  162. SAUT 2 'LIGNES' ;
  163.  
  164. A B = ORDO LREE1 LENT1 'ABSO' 'DECR' ;
  165. TESTER A ; TESTER B ;
  166. SAUT 2 'LIGNES' ;
  167.  
  168. A B C = ORDO LREE1 LENT1 LMOT1 'CROI' ;
  169. TESTER A ; TESTER B ; TESTER C ;
  170. SAUT 2 'LIGNES' ;
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. ******************************
  178. * *
  179. * L I S T E N T I *
  180. * *
  181. ******************************
  182.  
  183.  
  184.  
  185. * OPTIONS SIMPLES
  186. * ===============
  187.  
  188. LIST LENT1 ;
  189. SAUT 2 'LIGNES' ;
  190.  
  191. TESTER (ORDO LENT1) ;
  192. SAUT 2 'LIGNES' ;
  193.  
  194. TESTER (ORDO LENT1 'ABSO') ;
  195. SAUT 2 'LIGNES' ;
  196.  
  197. TESTER (ORDO LENT1 'DECR') ;
  198. SAUT 2 'LIGNES' ;
  199.  
  200. TESTER (ORDO 'UNIQ' LENT1) ;
  201. SAUT 2 'LIGNES' ;
  202.  
  203.  
  204. * OPTIONS COUPLEES
  205. * ================
  206.  
  207. LIST LENT1 ;
  208. SAUT 2 'LIGNES' ;
  209.  
  210. TESTER (ORDO 'UNIQ' LENT1 'DECR') ;
  211. SAUT 2 'LIGNES' ;
  212.  
  213. TESTER (ORDO 'ABSO' LENT1 'UNIQ' 'DECR') ;
  214. SAUT 2 'LIGNES' ;
  215.  
  216. TESTER (ORDO 'ABSO' 'DECR' LENT1) ;
  217. SAUT 2 'LIGNES' ;
  218.  
  219. TESTER (ORDO LENT1 'ABSO' 'UNIQ') ;
  220. SAUT 2 'LIGNES' ;
  221.  
  222.  
  223.  
  224. * TRI MULTIPLE
  225. * ============
  226.  
  227. LIST LENT1 ; LIST LREE1 ; LIST LMOT1 ;
  228. SAUT 2 'LIGNES' ;
  229.  
  230. A B = ORDO LENT1 'ABSO' LREE1 'DECR' ;
  231. TESTER A ; TESTER B ;
  232. SAUT 2 'LIGNES' ;
  233.  
  234. A B C = ORDO LENT1 LREE1 LMOT1 'CROI' ;
  235. TESTER A ; TESTER B ; TESTER C ;
  236. SAUT 2 'LIGNES' ;
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244. ******************************
  245. * *
  246. * L I S T M O T S *
  247. * *
  248. ******************************
  249.  
  250.  
  251.  
  252. * OPTIONS SIMPLES
  253. * ===============
  254.  
  255. LIST LMOT1 ;
  256. SAUT 2 'LIGNES' ;
  257.  
  258. TESTER (ORDO LMOT1) ;
  259. SAUT 2 'LIGNES' ;
  260.  
  261. TESTER (ORDO LMOT1 'NOCA') ;
  262. SAUT 2 'LIGNES' ;
  263.  
  264. TESTER (ORDO LMOT1 'DECR') ;
  265. SAUT 2 'LIGNES' ;
  266.  
  267. TESTER (ORDO LMOT1 'UNIQ') ;
  268. SAUT 2 'LIGNES' ;
  269.  
  270.  
  271. * OPTIONS COUPLEES
  272. * ================
  273.  
  274. LIST LMOT1 ;
  275. SAUT 2 'LIGNES' ;
  276.  
  277. TESTER (ORDO 'UNIQ' LMOT1 'DECR') ;
  278. SAUT 2 'LIGNES' ;
  279.  
  280. TESTER (ORDO LMOT1 'NOCA' 'UNIQ' 'DECR') ;
  281. SAUT 2 'LIGNES' ;
  282.  
  283. TESTER (ORDO LMOT1 'NOCA' 'DECR') ;
  284. SAUT 2 'LIGNES' ;
  285.  
  286. TESTER (ORDO LMOT1 'NOCA' 'UNIQ') ;
  287. SAUT 2 'LIGNES' ;
  288.  
  289.  
  290.  
  291. * TRI MULTIPLE
  292. * ============
  293.  
  294. LIST LMOT1 ; LIST LREE1 ; LIST LENT1 ;
  295. SAUT 2 'LIGNES' ;
  296.  
  297. A B = ORDO LMOT1 LREE1 'NOCA' 'DECR' ;
  298. TESTER A ; TESTER B ;
  299. SAUT 2 'LIGNES' ;
  300.  
  301. A B C = ORDO LMOT1 LREE1 'CROI' LENT1 ;
  302. TESTER A ; TESTER B ; TESTER C ;
  303. SAUT 2 'LIGNES' ;
  304.  
  305.  
  306.  
  307.  
  308.  
  309. *****************
  310. * *
  311. * T A B L E *
  312. * *
  313. *****************
  314.  
  315.  
  316. * AVEC UNE SEULE LISTE
  317. * ====================
  318.  
  319. TAB1 = TABL ;
  320. TAB1 . 56 = LENT1 ;
  321. TESTER (TAB1 . 56) ;
  322. SAUT 2 'LIGNES' ;
  323.  
  324. TAB2 = ORDO TAB1 56 ;
  325. TESTER (TAB2 . 56) ;
  326. SAUT 2 'LIGNES' ;
  327.  
  328. TAB2 = ORDO TAB1 56 'ABSO' ;
  329. TESTER (TAB2 . 56) ;
  330. SAUT 2 'LIGNES' ;
  331.  
  332. TAB2 = ORDO 'DECR' TAB1 56 'UNIQ' ;
  333. TESTER (TAB2 . 56) ;
  334. SAUT 2 'LIGNES' ;
  335.  
  336. TAB2 = ORDO 'ABSO' 'UNIQ' TAB1 56 ;
  337. TESTER (TAB2 . 56) ;
  338. SAUT 2 'LIGNES' ;
  339.  
  340. TAB2 = ORDO 'ABSO' 'UNIQ' TAB1 56 'DECR' ;
  341. TESTER (TAB2 . 56) ;
  342. SAUT 2 'LIGNES' ;
  343.  
  344.  
  345. * AVEC PLUSIEURS LISTES
  346. * =====================
  347.  
  348. TAB10 = TABL ;
  349. TAB10 . 56 = LENT1 ;
  350. TAB10 . 3.14 = LREE1 ;
  351. TAB10 . 'TOTO' = LMOT1 ;
  352. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  353. SAUT 2 'LIGNES' ;
  354.  
  355. TAB20 = ORDO TAB10 3.14 ;
  356. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  357. SAUT 2 'LIGNES' ;
  358.  
  359. TAB20 = ORDO 'DECR' TAB10 56 ;
  360. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  361. SAUT 2 'LIGNES' ;
  362.  
  363. TAB20 = ORDO 'DECR' 'ABSO' TAB10 3.14 ;
  364. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  365. SAUT 2 'LIGNES' ;
  366.  
  367. TAB20 = ORDO 'NOCA' 'DECR' TAB10 'TOTO' ;
  368. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  369. SAUT 2 'LIGNES' ;
  370.  
  371. TAB20 = ORDO 'NOCA' TAB10 'TOTO' ;
  372. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  373. SAUT 2 'LIGNES' ;
  374.  
  375.  
  376.  
  377.  
  378.  
  379. ***************************
  380. * *
  381. * V A L I D A T I O N *
  382. * *
  383. ***************************
  384. SI (NON (VALIDER)) ;
  385. ERRE 5 ;
  386. FINS ;
  387.  
  388.  
  389. FIN ;
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  

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