This commit is contained in:
kinou-p 2022-11-29 15:31:23 +01:00
parent 3d078ae677
commit f976f2194d
5 changed files with 180 additions and 72 deletions

View File

@ -6,17 +6,24 @@
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/10/12 19:45:18 by apommier #+# #+# #
# Updated: 2022/11/29 13:23:22 by apommier ### ########.fr #
# Updated: 2022/11/29 15:29:09 by apommier ### ########.fr #
# #
# **************************************************************************** #
NAME = a.out
NAME = my_tester
NAME2 = std_tester
SRCS = tests/map_tester.cpp\
tests/vector_tester.cpp\
tests/stack_tester.cpp\
tests/main.cpp
SRCS2 = tests/map_tester.cpp\
tests/vector_tester.cpp\
tests/stack_tester.cpp\
tests/main_real.cpp
OBJS = ${SRCS:.cpp=.o}
OBJS2 = ${SRCS2:.cpp=.o}
CC = c++
CFLAGS = -g -Wall -Wextra -Werror -std=c++98
RM = rm -rf
@ -24,16 +31,19 @@ RM = rm -rf
.cpp.o:
$(CC) ${CFLAGS} -c $< -o $(<:.cpp=.o)
${NAME}: ${OBJS}
${NAME}: ${OBJS} ${OBJS2}
${CC} ${LIB} ${OBJS} -o ${NAME}
${CC} ${LIB} ${OBJS2} -o ${NAME2}
all: ${NAME}
clean:
@${RM} ${OBJS}
@${RM} ${OBJS2}
fclean: clean
@${RM} ${NAME}
@${RM} ${NAME2}
re: fclean all

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/10/19 14:04:37 by apommier #+# #+# */
/* Updated: 2022/11/29 13:25:14 by apommier ### ########.fr */
/* Updated: 2022/11/29 15:19:04 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
@ -20,48 +20,11 @@ long get_time(void)
gettimeofday(&time, NULL);
return (time.tv_sec * 1000 + time.tv_usec / 1000);
}
// void print_vector(ft::vector<int> x)
// {
// std::cout << "-----print vector----\n";
// for (size_t i = 0; i < x.size(); i++)
// std::cout << x[i] << std::endl;
// }
// void stack_tester()
// {
// ft::stack<int> first;
// std::cout << "------empty------\n";
// std::cout << first.empty() << std::endl;
// std::cout << "------size------\n";
// std::cout << first.size() << std::endl;
// }
// void vector_tester()
// {
// ft::vector<int> first(5, 3);
// ft::vector<int> second;
// ft::vector<int>::iterator it = first.begin();
// std::cout << "------empty------\n";
// std::cout << first.empty() << std::endl;
// std::cout << second.empty() << std::endl;
// std::cout << "------size------\n";
// std::cout << first.size() << std::endl;
// std::cout << "------pushback then size------\n";
// first.push_back(5);
// std::cout << first.size() << std::endl;
// std::cout << "------for------\n";
// print_vector(first);
// std::cout << "-------0-----\n";
// std::cout << first.at(5) << std::endl;
// }
int main()
{
long real_time;
long my_time;
long time;
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
@ -73,44 +36,29 @@ int main()
std::cout << " ------------------------------------------------------------\n";
std::cout << " ---------------------------STACK----------------------------\n";
std::cout << " ------------------------------------------------------------\n";
my_time = get_time();
time = get_time();
stack_tester();
my_time = get_time() - my_time;
std::cout << " --------------------------REAL STACK------------------------\n";
real_time = get_time();
real_stack_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME DIFF-------------------------\n";
std::cout << " homemade ft containers = " << my_time << "ms\n";
std::cout << " real std containers = " << real_time << "ms\n";
time = get_time() - time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << time << "ms\n";
std::cout << " ------------------------------------------------------------\n";
std::cout << " ---------------------------VECTOR---------------------------\n";
std::cout << " ------------------------------------------------------------\n";
my_time = get_time();
time = get_time();
vector_tester();
my_time = get_time() - my_time;
std::cout << " --------------------------REAL VECTOR------------------------\n";
real_time = get_time();
real_vector_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME DIFF-------------------------\n";
std::cout << " homemade ft containers = " << my_time << "ms\n";
std::cout << " real std containers = " << real_time << "ms\n";
time = get_time() - time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << time << "ms\n";
std::cout << " ------------------------------------------------------------\n";
std::cout << " -----------------------------MAP----------------------------\n";
std::cout << " ------------------------------------------------------------\n";
my_time = get_time();
time = get_time();
map_tester();
my_time = get_time() - my_time;
std::cout << " ---------------------------REAL MAP-------------------------\n";
real_time = get_time();
real_map_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME DIFF-------------------------\n";
std::cout << " homemade ft containers = " << my_time << "ms\n";
std::cout << " real std containers = " << real_time << "ms\n";
time = get_time() - time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << time << "ms\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ******************************END OF TESTER******************************* */\n";

67
tests/main_real.cpp Normal file
View File

@ -0,0 +1,67 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main_real.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/11/29 15:14:45 by apommier #+# #+# */
/* Updated: 2022/11/29 15:18:33 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
#include "../ft_containers.hpp"
#include <sys/time.h>
long get_time(void)
{
struct timeval time;
gettimeofday(&time, NULL);
return (time.tv_sec * 1000 + time.tv_usec / 1000);
}
int main()
{
long real_time;
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* *****************************FT_CONTAINERS TESTER************************* */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << " ------------------------------------------------------------\n";
std::cout << " ---------------------------STACK----------------------------\n";
std::cout << " ------------------------------------------------------------\n";
real_time = get_time();
real_stack_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << real_time << "ms\n";
std::cout << " ------------------------------------------------------------\n";
std::cout << " ---------------------------VECTOR---------------------------\n";
std::cout << " ------------------------------------------------------------\n";
real_time = get_time();
real_vector_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << real_time << "ms\n";
std::cout << " ------------------------------------------------------------\n";
std::cout << " -----------------------------MAP----------------------------\n";
std::cout << " ------------------------------------------------------------\n";
real_time = get_time();
real_map_tester();
real_time = get_time() - real_time;
std::cout << " --------------------------TIME-------------------------\n";
std::cout << " time = " << real_time << "ms\n";
std::cout << "/* ************************************************************************** */\n";
std::cout << "/* ******************************END OF TESTER******************************* */\n";
std::cout << "/* ************************************************************************** */\n";
return (0);
}

View File

@ -6,15 +6,94 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/11/29 12:55:17 by apommier #+# #+# */
/* Updated: 2022/11/29 13:23:51 by apommier ### ########.fr */
/* Updated: 2022/11/29 15:12:31 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
#include "../ft_containers.hpp"
template <typename T>
std::string printPair(const T &iterator, bool nl = true, std::ostream &o = std::cout)
{
o << "key: " << iterator->first << " | value: " << iterator->second;
if (nl)
o << std::endl;
return ("");
}
template <typename T_MAP>
void printSize(T_MAP const &mp, bool print_content = 1)
{
std::cout << "size: " << mp.size() << std::endl;
std::cout << "max_size: " << mp.max_size() << std::endl;
if (print_content)
{
typename T_MAP::const_iterator it = mp.begin(), ite = mp.end();
std::cout << std::endl << "Content is:" << std::endl;
for (; it != ite; ++it)
std::cout << "- " << printPair(it, false) << std::endl;
}
std::cout << "###############################################" << std::endl;
}
void map_tester()
{
// std::cout << "----default constructor----" << std::endl;
// ft::map<int, int> ctnr;
// printSize(ctnr);
// std::cout << "----copy constructor----" << std::endl;
// ft::map<int, int> ctnr_copy(ctnr);
// printSize(ctnr_copy);
// std::cout << "----range constructor----" << std::endl;
// ft::map<int, int> ctnr2(ctnr.begin(), ctnr.end());
// printSize(ctnr2);
// ////////////////////////////////////
// std::cout << "----insert at position + assign constrcutor----" << std::endl;
// ft::map<int, int> ctnr4(5, 5);
// printSize(ctnr4);
// std::cout << "----insert----\n";
// ctnr4.insert(ctnr4.begin() + 3, 100);
// printSize(ctnr4);
// std::cout << "----insert fill----\n";
// ctnr4.insert(ctnr4.begin() + 3, 5, 100);
// printSize(ctnr4);
// std::cout << "----operator equal----\n";
// ft::map<int, int> ctnr5;
// ctnr5 = ctnr4;
// printSize(ctnr5);
// std::cout << "----insert range----\n";
// ctnr5.insert(ctnr5.begin() + 2, ctnr.begin()++, ctnr.end()--);
// printSize(ctnr5);
// std::cout << "----erase----\n";
// ctnr5.erase(ctnr5.end() - 5);
// printSize(ctnr5);
// std::cout << "----erase range----\n";
// ctnr5.erase(ctnr5.begin(), ctnr5.end() - 5);
// printSize(ctnr5);
// std::cout << "----swap----\n";
// ctnr5.swap(ctnr);
// std::cout << "----ctnr----\n";
// printSize(ctnr);
// std::cout << "----ctnr5----\n";
// printSize(ctnr5);
// std::cout << "----clear----\n";
// ctnr.clear();
// printSize(ctnr);
// ///////////////
// std::cout << "----relationnal ope----\n";
// cmp(ctnr, ctnr4);
}
void real_map_tester()

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/11/29 12:55:23 by apommier #+# #+# */
/* Updated: 2022/11/29 15:06:00 by apommier ### ########.fr */
/* Updated: 2022/11/29 15:30:18 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
@ -152,6 +152,10 @@ void real_vector_tester()
ctnr.assign(10, 1);
printSize_real(ctnr);
std::cout << "----copy constructor----" << std::endl;
std::vector<int> ctnr_copy(ctnr);
printSize_real(ctnr_copy);
std::cout << "----range constructor----" << std::endl;
std::vector<int> ctnr2(ctnr.begin(), ctnr.end());
printSize_real(ctnr2);