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 = 'cc4875af9354c05895091c939afd2179' ;
  23. MD5WINDO = 'c0ab43ece434be658eabd88498b204e1' ;
  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. * MACHIÎES D TGST
  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. OPTI 'ERRE' 'NORMAL' ;
  95. * VALIDATION DU HASH MD5
  96. SI (EXIS TAB1) ;
  97. MD5 = MOT TAB1. 1 ;
  98. RESP ((EGA MD5 MD5LINUX) OU (EGA MD5 MD5WINDO)) ;
  99. SINON ;
  100. RESP VRAI ;
  101. FINS ;
  102. FINP ;
  103.  
  104.  
  105.  
  106. ******************************
  107. * *
  108. * L I S T R E E L *
  109. * *
  110. ******************************
  111.  
  112.  
  113.  
  114. * OPTIONS SIMPLES
  115. * ===============
  116.  
  117. LIST LREE1 ;
  118. SAUT 2 'LIGNES' ;
  119.  
  120. TESTER (ORDO LREE1) ;
  121. SAUT 2 'LIGNES' ;
  122.  
  123. TESTER (ORDO LREE1 'ABSO') ;
  124. SAUT 2 'LIGNES' ;
  125.  
  126. TESTER (ORDO LREE1 'DECR') ;
  127. SAUT 2 'LIGNES' ;
  128.  
  129. TESTER (ORDO LREE1 'UNIQ') ;
  130. SAUT 2 'LIGNES' ;
  131.  
  132. TESTER (ORDO LREE1 'UNIQ' 0.5) ;
  133. SAUT 2 'LIGNES' ;
  134.  
  135.  
  136.  
  137. * OPTIONS COUPLEES
  138. * ================
  139.  
  140. LIST LREE1 ;
  141. SAUT 2 'LIGNES' ;
  142.  
  143. TESTER (ORDO LREE1 'UNIQ' 0.5 'DECR') ;
  144. SAUT 2 'LIGNES' ;
  145.  
  146. TESTER (ORDO 'ABSO' LREE1 'UNIQ' 0.5 'DECR') ;
  147. SAUT 2 'LIGNES' ;
  148.  
  149. TESTER (ORDO 'ABSO' 'DECR' LREE1) ;
  150. SAUT 2 'LIGNES' ;
  151.  
  152. TESTER (ORDO 'ABSO' LREE1 'UNIQ') ;
  153. SAUT 2 'LIGNES' ;
  154.  
  155.  
  156.  
  157. * TRI MULTIPLE
  158. * ============
  159.  
  160. LIST LREE1 ; LIST LENT1 ; LIST LMOT1 ;
  161. SAUT 2 'LIGNES' ;
  162.  
  163. A B = ORDO LREE1 LENT1 'ABSO' 'DECR' ;
  164. TESTER A ; TESTER B ;
  165. SAUT 2 'LIGNES' ;
  166.  
  167. A B C = ORDO LREE1 LENT1 LMOT1 'CROI' ;
  168. TESTER A ; TESTER B ; TESTER C ;
  169. SAUT 2 'LIGNES' ;
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176. ******************************
  177. * *
  178. * L I S T E N T I *
  179. * *
  180. ******************************
  181.  
  182.  
  183.  
  184. * OPTIONS SIMPLES
  185. * ===============
  186.  
  187. LIST LENT1 ;
  188. SAUT 2 'LIGNES' ;
  189.  
  190. TESTER (ORDO LENT1) ;
  191. SAUT 2 'LIGNES' ;
  192.  
  193. TESTER (ORDO LENT1 'ABSO') ;
  194. SAUT 2 'LIGNES' ;
  195.  
  196. TESTER (ORDO LENT1 'DECR') ;
  197. SAUT 2 'LIGNES' ;
  198.  
  199. TESTER (ORDO 'UNIQ' LENT1) ;
  200. SAUT 2 'LIGNES' ;
  201.  
  202.  
  203. * OPTIONS COUPLEES
  204. * ================
  205.  
  206. LIST LENT1 ;
  207. SAUT 2 'LIGNES' ;
  208.  
  209. TESTER (ORDO 'UNIQ' LENT1 'DECR') ;
  210. SAUT 2 'LIGNES' ;
  211.  
  212. TESTER (ORDO 'ABSO' LENT1 'UNIQ' 'DECR') ;
  213. SAUT 2 'LIGNES' ;
  214.  
  215. TESTER (ORDO 'ABSO' 'DECR' LENT1) ;
  216. SAUT 2 'LIGNES' ;
  217.  
  218. TESTER (ORDO LENT1 'ABSO' 'UNIQ') ;
  219. SAUT 2 'LIGNES' ;
  220.  
  221.  
  222.  
  223. * TRI MULTIPLE
  224. * ============
  225.  
  226. LIST LENT1 ; LIST LREE1 ; LIST LMOT1 ;
  227. SAUT 2 'LIGNES' ;
  228.  
  229. A B = ORDO LENT1 'ABSO' LREE1 'DECR' ;
  230. TESTER A ; TESTER B ;
  231. SAUT 2 'LIGNES' ;
  232.  
  233. A B C = ORDO LENT1 LREE1 LMOT1 'CROI' ;
  234. TESTER A ; TESTER B ; TESTER C ;
  235. SAUT 2 'LIGNES' ;
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243. ******************************
  244. * *
  245. * L I S T M O T S *
  246. * *
  247. ******************************
  248.  
  249.  
  250.  
  251. * OPTIONS SIMPLES
  252. * ===============
  253.  
  254. LIST LMOT1 ;
  255. SAUT 2 'LIGNES' ;
  256.  
  257. TESTER (ORDO LMOT1) ;
  258. SAUT 2 'LIGNES' ;
  259.  
  260. TESTER (ORDO LMOT1 'NOCA') ;
  261. SAUT 2 'LIGNES' ;
  262.  
  263. TESTER (ORDO LMOT1 'DECR') ;
  264. SAUT 2 'LIGNES' ;
  265.  
  266. TESTER (ORDO LMOT1 'UNIQ') ;
  267. SAUT 2 'LIGNES' ;
  268.  
  269.  
  270. * OPTIONS COUPLEES
  271. * ================
  272.  
  273. LIST LMOT1 ;
  274. SAUT 2 'LIGNES' ;
  275.  
  276. TESTER (ORDO 'UNIQ' LMOT1 'DECR') ;
  277. SAUT 2 'LIGNES' ;
  278.  
  279. TESTER (ORDO LMOT1 'NOCA' 'UNIQ' 'DECR') ;
  280. SAUT 2 'LIGNES' ;
  281.  
  282. TESTER (ORDO LMOT1 'NOCA' 'DECR') ;
  283. SAUT 2 'LIGNES' ;
  284.  
  285. TESTER (ORDO LMOT1 'NOCA' 'UNIQ') ;
  286. SAUT 2 'LIGNES' ;
  287.  
  288.  
  289.  
  290. * TRI MULTIPLE
  291. * ============
  292.  
  293. LIST LMOT1 ; LIST LREE1 ; LIST LENT1 ;
  294. SAUT 2 'LIGNES' ;
  295.  
  296. A B = ORDO LMOT1 LREE1 'NOCA' 'DECR' ;
  297. TESTER A ; TESTER B ;
  298. SAUT 2 'LIGNES' ;
  299.  
  300. A B C = ORDO LMOT1 LREE1 'CROI' LENT1 ;
  301. TESTER A ; TESTER B ; TESTER C ;
  302. SAUT 2 'LIGNES' ;
  303.  
  304.  
  305.  
  306.  
  307.  
  308. *****************
  309. * *
  310. * T A B L E *
  311. * *
  312. *****************
  313.  
  314.  
  315. * AVEC UNE SEULE LISTE
  316. * ====================
  317.  
  318. TAB1 = TABL ;
  319. TAB1 . 56 = LENT1 ;
  320. TESTER (TAB1 . 56) ;
  321. SAUT 2 'LIGNES' ;
  322.  
  323. TAB2 = ORDO TAB1 56 ;
  324. TESTER (TAB2 . 56) ;
  325. SAUT 2 'LIGNES' ;
  326.  
  327. TAB2 = ORDO TAB1 56 'ABSO' ;
  328. TESTER (TAB2 . 56) ;
  329. SAUT 2 'LIGNES' ;
  330.  
  331. TAB2 = ORDO 'DECR' TAB1 56 'UNIQ' ;
  332. TESTER (TAB2 . 56) ;
  333. SAUT 2 'LIGNES' ;
  334.  
  335. TAB2 = ORDO 'ABSO' 'UNIQ' TAB1 56 ;
  336. TESTER (TAB2 . 56) ;
  337. SAUT 2 'LIGNES' ;
  338.  
  339. TAB2 = ORDO 'ABSO' 'UNIQ' TAB1 56 'DECR' ;
  340. TESTER (TAB2 . 56) ;
  341. SAUT 2 'LIGNES' ;
  342.  
  343.  
  344. * AVEC PLUSIEURS LISTES
  345. * =====================
  346.  
  347. TAB10 = TABL ;
  348. TAB10 . 56 = LENT1 ;
  349. TAB10 . 3.14 = LREE1 ;
  350. TAB10 . 'TOTO' = LMOT1 ;
  351. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  352. SAUT 2 'LIGNES' ;
  353.  
  354. TAB20 = ORDO TAB10 3.14 ;
  355. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  356. SAUT 2 'LIGNES' ;
  357.  
  358. TAB20 = ORDO 'DECR' TAB10 56 ;
  359. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  360. SAUT 2 'LIGNES' ;
  361.  
  362. TAB20 = ORDO 'DECR' 'ABSO' TAB10 3.14 ;
  363. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  364. SAUT 2 'LIGNES' ;
  365.  
  366. TAB20 = ORDO 'NOCA' 'DECR' TAB10 'TOTO' ;
  367. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  368. SAUT 2 'LIGNES' ;
  369.  
  370. TAB20 = ORDO 'NOCA' TAB10 'TOTO' ;
  371. TESTER (TAB10 . 56) ; TESTER (TAB10 . 3.14) ; TESTER (TAB10 . 'TOTO') ;
  372. SAUT 2 'LIGNES' ;
  373.  
  374.  
  375.  
  376.  
  377.  
  378. ***************************
  379. * *
  380. * V A L I D A T I O N *
  381. * *
  382. ***************************
  383. SI (NON (VALIDER)) ;
  384. ERRE 5 ;
  385. FINS ;
  386.  
  387.  
  388. FIN ;
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  

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