/** * Fonction de predicat pour savoir si un litteral est un litteral pur * @param cl2lt structure de donnees clauses -> litteraux * @param litteral valeur du litteral * @return renvoie TRUE si la valeur est un litteral pur , FALSE sinon. (voir enum Boolean const.h) */ Boolean is_pure_litteral_int(liste cl2lt,int litteral){ if(element_exists(cl2lt,litteral) == FALSE) return FALSE; if(element_exists(cl2lt,(-litteral)) ) /* Si l'oppose existe dans une des clauses */ return FALSE; /* ce n'est pas un litteral pur */ return TRUE; }
int test_training_set_1(void) { training_set_t* tset; size_t u, k, i; /* Model configuration */ /* Setup model parameters */ model_parameters_t params = { 0 }; printf("Test training set ... \n"); params.items_number = ITEM_NUMBER_TEST_SIZE; params.users_number = USER_NUMBER_TEST_SIZE; params.training_set_size = TRAINING_SET_TEST_SIZE; /* Initialize a training set */ tset = init_training_set(params); srand ( 47 ); for (u = 0; u < USER_NUMBER_TEST_SIZE; u++) { for (i = 0; i < ITEM_NUMBER_TEST_SIZE; i++) { set_known_rating(u, i, (float) (rand() % 10), tset); } } compile_training_set(tset); for (i = 0; i < TRAINING_SET_TEST_SIZE; i++) { float val; u = tset->ratings->entries[i].row_i; k = tset->ratings->entries[i].column_j; assert(element_exists(u, k, tset->ratings_matrix)); val = get_element(u, k, tset->ratings_matrix); assert(val == tset->ratings->entries[i].value); } free_training_set(tset); printf("Test training set [OK] \n"); return 0; }
/** * Fonction de predicat pour savoir si un litteral est un litteral pur * @param cl2lt structure de donnees clauses -> litteraux * @param litteral pointeur vers l'element litteral * @return renvoie TRUE si la valeur est un litteral pur , FALSE sinon. (voir enum Boolean const.h) */ Boolean is_pure_litteral(liste cl2lt,cellule *litteral){ /* Verifs de type */ if(litteral->element == TYPE_ELEMENT_CL){ gestion_erreur(ERREUR_TYPE); return FALSE; } if(litteral == NULL){ gestion_erreur(ERREUR_DEPASSEMENT_MEMOIRE); return FALSE; } if(element_exists(cl2lt,(-litteral->val)) ) /* Si l'oppose existe dans une des clauses */ return FALSE; /* ce n'est pas un litteral pur */ return TRUE; }