示例#1
0
/**
*   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;
}
示例#3
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;
}