all: rbt set map
clean:
rm -f *.gcov *.gcda *.gcno a.out
rbt: clean red_black_tree.h red_black_tree_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g --coverage red_black_tree_tests.cpp && ./a.out && gcov -mr red_black_tree_tests.cpp
set: clean my_set.h set_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g --coverage set_tests.cpp && ./a.out && gcov -mr set_tests.cpp
map: clean my_map.h map_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g --coverage map_tests.cpp && ./a.out && gcov -mr map_tests.cpp
rbt_memory_errors: clean red_black_tree.h red_black_tree_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g red_black_tree_tests.cpp && valgrind --leak-check=full ./a.out
set_memory_errors: clean my_set.h set_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g set_tests.cpp && valgrind --leak-check=full ./a.out
map_memory_errors: clean my_map.h map_tests.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g map_tests.cpp && valgrind --leak-check=full ./a.out
compile_test: compile_test_rbt compile_test_set compile_test_map
compile_test_rbt: clean red_black_tree.h compile_test_rbt.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g compile_test_rbt.cpp
compile_test_set: clean my_set.h compile_test_set.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g compile_test_set.cpp
compile_test_map: clean my_map.h compile_test_map.cpp
g++ -std=c++17 -Wall -Wextra -Weffc++ -pedantic-errors -g compile_test_map.cpp