TIPE2021/Test.ml
Mysaa 929150577c Ajout de jolies définitions mli pour les modules
Modification du Makefile qui détecte tout seul la présence d'un mli.
Rangement des pdfs dans un sous-dossier "Documents"
2021-03-11 22:49:00 +01:00

80 lines
1.9 KiB
OCaml

#cd "/home/mysaa/Documents/Arbeiten/TIPE2021";;
Sys.command "make Math.cmo Code.cmo";;
#load "Math.cmo";;
#load "Code.cmo";;
open Math;;
open Code;;
(* Test du produit de matrice *)
let matest = [0b01110; 0b00101; 0b10111];;
print_matrice 5 matest;;
produit matest 0b110;; (* -> 0b10010 = 8 *)
(* Tests des polynomes *)
let pol1 = 13 and pol2 = 67;;
print_polynome pol1;;
print_polynome pol2;;
print_polynome (polmul pol1 pol2);;
let qt,rst=(poldiveuc pol2 pol1) in
print_polynome qt;
print_polynome rst;;
(* Test des fonctions de base *)
deux_puissance 11;;
identite 3;;
changer_bit 2 6;;
respecter 7 [3];;
(* Test des Codes *)
(* Un classique : code de Hamming (4, 7)
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 1 0 1 0 0
1 1 0 1 0 1 0
1 0 1 1 0 0 1
-> les 4 premières colonnes : G
-> les 3 dernières lignes : H
*)
let code_hamming =
CLineaire.systematiqueFromRedondance 4 7 [7; 3; 5; 6]
;;
CLineaire.distance_minimale code_hamming;;
exception GTROUVE of matrice;;
for i=0 to 20
do
Random.self_init ();
let matPapa = matriceAuPif 9 12 in
let code_paparfait = CLineaire.systematiqueFromRedondance 12 21 matPapa in
let dst = CLineaire.distance_minimale code_paparfait in
if dst>1
then raise (GTROUVE matPapa)
done;;
print_vecteur 21 (CLineaire.encoder code_paparfait 0b011011011001);;
print_vecteur 7 (CLineaire.encoder code_hamming 0b0100);;
CLineaire.decoder code_hamming 0b1010100;;
CLineaire.decoder code_hamming 0b0010100;;
CLineaire.decoder code_hamming 0b1110000;;
print_vecteur 7 21;;
(* Tests des codes cycliques *)
let cocycl = CCyclique.get 7 4 13;;
print_polynome cocycl.pol;;
poldiveuc ((deux_puissance 7) +1) cocycl.pol;;
print_polynome ((deux_puissance 7) +1);;
print_polynome (poldiv ((deux_puissance 7) +1) cocycl.pol);;
let cocylined = cycliqueVersLineaire cocycl;;
print_matrice 7 cocylined.g;;
print_matrice 4 cocylined.h;;
CLineaire.distance_minimale cocylined;;