int test_accessible(){ int result = 1; Automate* aut1 = mot_to_automate("abcde"); ajouter_transition( aut1, 3, 'a', 3); ajouter_transition( aut1, 3, 'b', 2); ajouter_transition( aut1, 3, 'c', 1); ajouter_transition( aut1, 1, 'e', 3); ajouter_etat( aut1, 6); ajouter_etat( aut1, 7); ajouter_transition( aut1, 6, 'a', 7); ajouter_transition( aut1, 7, 'e', 6); printf("Automate 1: \n"); print_automate(aut1); printf("\n"); Automate* aut2 = automate_accessible(aut1); printf("Resultat: \n"); print_automate(aut2); printf("\n"); liberer_automate(aut1); return result; }
int test_automate_du_melange(){ int result = 1; { Automate * aut1 = mot_to_automate("a"); Automate * aut2 = mot_to_automate("b"); Automate * mela = creer_automate_du_melange( aut1, aut2 ); print_automate(mela); TEST( 1 && mela && le_mot_est_reconnu( mela, "ab" ) && le_mot_est_reconnu( mela, "ba" ) && ! le_mot_est_reconnu( mela, "" ) && ! le_mot_est_reconnu( mela, "a" ) && ! le_mot_est_reconnu( mela, "b" ) && ! le_mot_est_reconnu( mela, "aa" ) && ! le_mot_est_reconnu( mela, "bb" ) && ! le_mot_est_reconnu( mela, "aaa" ) && ! le_mot_est_reconnu( mela, "aab" ) && ! le_mot_est_reconnu( mela, "aba" ) && ! le_mot_est_reconnu( mela, "abb" ) && ! le_mot_est_reconnu( mela, "baa" ) && ! le_mot_est_reconnu( mela, "bab" ) && ! le_mot_est_reconnu( mela, "bba" ) && ! le_mot_est_reconnu( mela, "bbb" ) , result ); wrap_liberer_automate( aut1 ); wrap_liberer_automate( aut2 ); wrap_liberer_automate( mela ); } { Automate * aut1 = creer_automate(); ajouter_transition( aut1, 0, 'a', 1 ); ajouter_transition( aut1, 1, 'b', 2 ); ajouter_transition( aut1, 2, 'a', 2 ); ajouter_transition( aut1, 2, 'b', 1 ); ajouter_etat_initial( aut1, 0 ); ajouter_etat_final( aut1, 1 ); Automate * aut2 = creer_automate(); ajouter_transition( aut2, 0, 'c', 1 ); ajouter_transition( aut2, 1, 'd', 1 ); ajouter_transition( aut2, 0, 'd', 0 ); ajouter_transition( aut2, 1, 'e', 0 ); ajouter_etat_initial( aut2, 0 ); ajouter_etat_final( aut2, 1 ); Automate * mela = creer_automate_du_melange( aut1, aut2 ); print_automate(mela); TEST( 1 && mela && ! le_mot_est_reconnu( mela, "" ) && ! le_mot_est_reconnu( mela, "a" ) && ! le_mot_est_reconnu( mela, "b" ) && ! le_mot_est_reconnu( mela, "c" ) && ! le_mot_est_reconnu( mela, "d" ) && ! le_mot_est_reconnu( mela, "e" ) && le_mot_est_reconnu( mela, "ca" ) && le_mot_est_reconnu( mela, "ac" ) && ! le_mot_est_reconnu( mela, "aa" ) && ! le_mot_est_reconnu( mela, "cc" ) && le_mot_est_reconnu( mela, "cabb" ) && le_mot_est_reconnu( mela, "acbb" ) && le_mot_est_reconnu( mela, "abcb" ) && le_mot_est_reconnu( mela, "abbc" ) && le_mot_est_reconnu( mela, "cda" ) && le_mot_est_reconnu( mela, "cad" ) && le_mot_est_reconnu( mela, "acd" ) && le_mot_est_reconnu( mela, "cdeca" ) && le_mot_est_reconnu( mela, "cdeac" ) && le_mot_est_reconnu( mela, "cdaec" ) && le_mot_est_reconnu( mela, "cadec" ) && le_mot_est_reconnu( mela, "acdec" ) && le_mot_est_reconnu( mela, "cdabb" ) && le_mot_est_reconnu( mela, "cadbb" ) && le_mot_est_reconnu( mela, "cabdb" ) && le_mot_est_reconnu( mela, "cabbd" ) && le_mot_est_reconnu( mela, "acdbb" ) && le_mot_est_reconnu( mela, "acbdb" ) && le_mot_est_reconnu( mela, "acbbd" ) && le_mot_est_reconnu( mela, "abcdb" ) && le_mot_est_reconnu( mela, "abcbd" ) && le_mot_est_reconnu( mela, "abbcd" ) , result ); wrap_liberer_automate( aut1 ); wrap_liberer_automate( aut2 ); wrap_liberer_automate( mela ); } return result; }
int test_execute_fonctions(){ BEGIN_TEST int res = 1; Automate * automate2; Automate * automate; Automate * result = NULL; Ensemble * ens = NULL; Ensemble * ens1 = NULL; automate = creer_automate(); result = NULL; ajouter_lettre( automate, 'a' ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; ajouter_etat_final( automate, 1 ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; ajouter_etat_initial( automate, 1 ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); get_initiaux( automate ); liberer_automate( automate ); automate = creer_automate(); get_finaux( automate ); liberer_automate( automate ); automate = creer_automate(); get_alphabet( automate ); liberer_automate( automate ); automate = creer_automate(); result = NULL; est_un_etat_initial_de_l_automate( automate, 1 ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; est_un_etat_final_de_l_automate( automate, 1 ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; est_une_lettre_de_l_automate( automate, 'a' ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); ens = NULL; ens1 = creer_ensemble( NULL, NULL, NULL ); ens = delta_star( automate, ens1, "aba" ); if( ens ) liberer_ensemble( ens ); liberer_ensemble( ens1 ); liberer_automate( automate ); automate = creer_automate(); result = NULL; le_mot_est_reconnu( automate, "abaa" ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = mot_to_automate( "abbaa" ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); ens = NULL; ens = etats_accessibles( automate, 0 ); if( ens ) liberer_ensemble( ens ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = automate_accessible( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = miroir( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = automate_co_accessible(automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = creer_automate_des_prefixes( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = creer_automate_des_suffixes( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; result = creer_automate_des_facteurs( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); automate = creer_automate(); result = NULL; ens = creer_ensemble( NULL, NULL, NULL ); result = creer_automate_des_sur_mot( automate, ens ); if( result ) liberer_automate( result ); liberer_automate( automate ); liberer_ensemble( ens ); automate = creer_automate(); automate2 = creer_automate(); result = NULL; result = creer_automate_de_concatenation( automate, automate2 ); if( result ) liberer_automate( result ); liberer_automate( automate ); liberer_automate( automate2 ); automate = creer_automate(); result = NULL; result = creer_automate_des_sous_mots( automate ); if( result ) liberer_automate( result ); liberer_automate( automate ); return res; }
int test_automate_union(){ int result = 1; { Automate * aut1 = mot_to_automate("ab"); Automate * aut2 = mot_to_automate("ba"); Automate * mela = creer_union_des_automates( aut1, aut2 ); TEST( 1 && mela && le_mot_est_reconnu( mela, "ab" ) && le_mot_est_reconnu( mela, "ba" ) && ! le_mot_est_reconnu( mela, "" ) && ! le_mot_est_reconnu( mela, "a" ) && ! le_mot_est_reconnu( mela, "b" ) && ! le_mot_est_reconnu( mela, "aa" ) && ! le_mot_est_reconnu( mela, "bb" ) && ! le_mot_est_reconnu( mela, "aaa" ) && ! le_mot_est_reconnu( mela, "aab" ) && ! le_mot_est_reconnu( mela, "aba" ) && ! le_mot_est_reconnu( mela, "abb" ) && ! le_mot_est_reconnu( mela, "baa" ) && ! le_mot_est_reconnu( mela, "bab" ) && ! le_mot_est_reconnu( mela, "bba" ) && ! le_mot_est_reconnu( mela, "bbb" ) , result ); wrap_liberer_automate( aut1 ); wrap_liberer_automate( aut2 ); wrap_liberer_automate( mela ); } { Automate * aut1 = creer_automate(); ajouter_transition( aut1, 0, 'a', 1 ); ajouter_transition( aut1, 1, 'b', 2 ); ajouter_transition( aut1, 2, 'a', 2 ); ajouter_transition( aut1, 2, 'b', 1 ); ajouter_etat_initial( aut1, 0 ); ajouter_etat_final( aut1, 1 ); Automate * aut2 = creer_automate(); ajouter_transition( aut2, 0, 'c', 1 ); ajouter_transition( aut2, 1, 'd', 1 ); ajouter_transition( aut2, 0, 'd', 0 ); ajouter_transition( aut2, 1, 'e', 0 ); ajouter_etat_initial( aut2, 0 ); ajouter_etat_final( aut2, 1 ); Automate * mela = creer_union_des_automates( aut1, aut2 ); TEST( 1 && mela && le_mot_est_reconnu( mela, "a" ) && le_mot_est_reconnu( mela, "c" ) && ! le_mot_est_reconnu( mela, "" ) && ! le_mot_est_reconnu( mela, "b" ) && ! le_mot_est_reconnu( mela, "d" ) && ! le_mot_est_reconnu( mela, "e" ) && le_mot_est_reconnu ( mela, "dc") && le_mot_est_reconnu ( mela, "cec") && le_mot_est_reconnu ( mela, "abb") && !le_mot_est_reconnu( mela, "da") , result ); wrap_liberer_automate( aut1 ); wrap_liberer_automate( aut2 ); wrap_liberer_automate( mela ); } return result; }