<commit_before>/*
 * prueba_hash.c
 * Pruebas para el tipo de dato abstracto Tabla de Hash
 * Copyright: (2011) <NAME>, <NAME>
 * Licencia: CC-BY-SA 2.5 (ar) ó CC-BY-SA 3.0
 */

#include "abb.h"
#include "testing.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>


/* ******************************************************************
 *                        PRUEBAS UNITARIAS
 * *****************************************************************/
static void prueba_crear_abb_vacio()
{
    abb_t* abb = abb_crear(strcmp,NULL);
    char* str = "test";
    print_test("Prueba crear abb vacio", abb);
    print_test("Prueba la cantidad de nodos en el abb es igual a 0", abb_cantidad(abb) == 0);
    print_test("Prueba buscar una clave en un abb vacio devuelve NULL",!abb_obtener(abb,str));
    print_test("Prueba ver si un valor esta en el abb y la clave no existe devuelve NULL",!abb_pertenece(abb,str));
    abb_destruir(abb);
    print_test("El arbol se destruyo correctamente",true);
}

static void pruebas_abb_guardar(){
	abb_t* abb = abb_crear(strcmp,NULL);
	char* clave = "a";
	char* dato = "a";

	print_test("Prueba crear abb vacio", abb);
    print_test("Prueba la cantidad de nodos en el abb es igual a 0", abb_cantidad(abb) == 0);
	print_test("Prueba guardar un nodo de raiz",abb_guardar(abb,clave,dato) == true);
	print_test("Prueba la cantidad de nodos en el abb es igual a 1", abb_cantidad(abb) == 1);
	print_test("Prueba abb obtener devuelve a",abb_obtener(abb,clave) == dato);
	print_test("Prueba abb pertenece devuelve true con clave a", abb_pertenece(abb,clave) == true);
	print_test("Prueba abb pertenese devuelve false con clave b", abb_pertenece(abb,"b") == false);
}

/* ******************************************************************
 *                        FUNCIÓN PRINCIPAL
 * *****************************************************************/


void pruebas_abb_alumno()
{
    /* Ejecuta todas las pruebas unitarias. */
	prueba_crear_abb_vacio();
	pruebas_abb_guardar();
}<commit_msg>agregadas pruebas de guardar abb<commit_after>/*
 * prueba_hash.c
 * Pruebas para el tipo de dato abstracto Tabla de Hash
 * Copyright: (2011) <NAME>, <NAME>
 * Licencia: CC-BY-SA 2.5 (ar) ó CC-BY-SA 3.0
 */

#include "abb.h"
#include "testing.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>


/* ******************************************************************
 *                        PRUEBAS UNITARIAS
 * *****************************************************************/
static void prueba_crear_abb_vacio(){
	printf("---------------------------PRUEBAS CREAR ABB VACIO---------------------------\n");
    abb_t* abb = abb_crear(strcmp,NULL);
    char* str = "test";
    print_test("Prueba crear abb vacio", abb);
    print_test("Prueba la cantidad de nodos en el abb es igual a 0", abb_cantidad(abb) == 0);
    print_test("Prueba buscar una clave en un abb vacio devuelve NULL",!abb_obtener(abb,str));
    print_test("Prueba ver si un valor esta en el abb y la clave no existe devuelve NULL",!abb_pertenece(abb,str));
    abb_destruir(abb);
    print_test("El arbol se destruyo correctamente",true);
}

static void pruebas_abb_guardar(){
	printf("---------------------------PRUEBAS ABB GUARDAR---------------------------\n");
	abb_t* abb = abb_crear(strcmp,NULL);
	char* claves[] = {"f","z","d","a"};
	char* datos[] = {"f","z","d","a"};
	print_test("Prueba crear abb vacio", abb);
    print_test("Prueba la cantidad de nodos en el abb es igual a 0", abb_cantidad(abb) == 0);

    // Prueba guardar el primer elemento
	print_test("Prueba guardar un nodo de raiz",abb_guardar(abb,claves[0],datos[0]) == true);
	print_test("Prueba la cantidad de nodos en el abb es igual a 1", abb_cantidad(abb) == 1);
	print_test("Prueba abb obtener devuelve f",abb_obtener(abb,claves[0]) == datos[0]);
	print_test("Prueba abb pertenece devuelve true con clave f", abb_pertenece(abb,claves[0]) == true);

	// Prueba guardar un segundo elemento el cual es mayor, hijo derecho
	print_test("Prueba abb pertenee devuelve false con clave z", abb_pertenece(abb,claves[1]) == false);
	print_test("Prueba guardar un nodo con clave z", abb_guardar(abb,claves[1],datos[1]) == true);
	print_test("Prueba la cantidad de nodos en el abb es igual a 2", abb_cantidad(abb) == 2);
	print_test("Prueba abb obtener de clave z devuelve z", abb_obtener(abb,claves[1]) == datos[1]);
	print_test("Prueba abb pertence devuelve true con clave z", abb_pertenece(abb,claves[1]) == true);

	//	Prueba guardar un tercer elemento el cual es menor, hijo izquierdo
	print_test("Prueba guardar un nodo con clave d", abb_guardar(abb,claves[2],datos[2]) == true);
	print_test("Prueba la cantidad de nodos en el abb es igual a 3", abb_cantidad(abb) == 3);
	print_test("Prueba abb obtener de clave d devuelve d", abb_obtener(abb,claves[2]) == datos[2]);
	print_test("Prueba abb pertence devuelve true con clave d", abb_pertenece(abb,claves[2]) == true);

	print_test("Prueba guardar un nodo con clave a", abb_guardar(abb,claves[3],datos[3]) == true);
	print_test("Prueba la cantidad de nodos en el abb es igual a 4", abb_cantidad(abb) == 4);
	print_test("Prueba abb obtener de clave a devuelve a", abb_obtener(abb,claves[3]) == datos[3]);
	print_test("Prueba abb pertence devuelve true con clave a", abb_pertenece(abb,claves[3]) == true);

}

/* ******************************************************************
 *                        FUNCIÓN PRINCIPAL
 * *****************************************************************/


void pruebas_abb_alumno()
{
    /* Ejecuta todas las pruebas unitarias. */
	prueba_crear_abb_vacio();
	pruebas_abb_guardar();
}
{'fraction_non_alphanumeric': 0.23062049569344348, 'fraction_numerical': 0.009667779926173316, 'mean_word_length': 4.513565891472868, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '61142', 'n_tokens_mistral': 2145, 'n_tokens_neox': 2046, 'n_words': 539}