diff --git a/Makefile b/Makefile index 0a15997..12ad749 100644 --- a/Makefile +++ b/Makefile @@ -6,17 +6,24 @@ # By: apommier +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # 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 diff --git a/tests/main.cpp b/tests/main.cpp index 4514785..e103cce 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 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 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 first(5, 3); -// ft::vector second; -// ft::vector::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"; diff --git a/tests/main_real.cpp b/tests/main_real.cpp new file mode 100644 index 0000000..9fdf9be --- /dev/null +++ b/tests/main_real.cpp @@ -0,0 +1,67 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main_real.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/11/29 15:14:45 by apommier #+# #+# */ +/* Updated: 2022/11/29 15:18:33 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../ft_containers.hpp" +#include + +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); +} \ No newline at end of file diff --git a/tests/map_tester.cpp b/tests/map_tester.cpp index 537480b..f6d0ba7 100644 --- a/tests/map_tester.cpp +++ b/tests/map_tester.cpp @@ -6,15 +6,94 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +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 +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 ctnr; +// printSize(ctnr); + +// std::cout << "----copy constructor----" << std::endl; +// ft::map ctnr_copy(ctnr); +// printSize(ctnr_copy); +// std::cout << "----range constructor----" << std::endl; +// ft::map ctnr2(ctnr.begin(), ctnr.end()); +// printSize(ctnr2); + +// //////////////////////////////////// +// std::cout << "----insert at position + assign constrcutor----" << std::endl; +// ft::map 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 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() diff --git a/tests/vector_tester.cpp b/tests/vector_tester.cpp index cc8326c..a97ae80 100644 --- a/tests/vector_tester.cpp +++ b/tests/vector_tester.cpp @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 ctnr_copy(ctnr); + printSize_real(ctnr_copy); + std::cout << "----range constructor----" << std::endl; std::vector ctnr2(ctnr.begin(), ctnr.end()); printSize_real(ctnr2);