#ifndef MAIN_HPP
# define MAIN_HPP

#include "colors.h"
#include <iostream>
#include <string>
#include <iomanip> // std::setw()
#include <vector>

#include "tests_structs.hpp"


// global variables
//                  ***************************************
std::vector< std::vector<A_test*> >	test_list;
std::vector< mystruct* >			mem_list;


// prototypes
//            *********************************************
//		vectors
void	tests_vector_constructor();
void	tests_vector_operator_assignation();
void	tests_vector_begin();
void	tests_vector_end();
void	tests_vector_rbegin();
void	tests_vector_rend();
void	tests_vector_size();
void	tests_vector_max_size();
void	tests_vector_resize();
void	tests_vector_capacity();
void	tests_vector_empty();
void	tests_vector_reserve();
void	tests_vector_operator_access();
void	tests_vector_at();
void	tests_vector_front();
void	tests_vector_back();
void	tests_vector_assign();
void	tests_vector_push_back();
void	tests_vector_pop_back();
void	tests_vector_insert();
void	tests_vector_erase();
void	tests_vector_swap();
void	tests_vector_clear();
void	tests_vector_get_allocator();
void	tests_vector_relational_operators();
void	tests_vector_swap_non_member();
void	tests_vector_reverse_iterators();
//		map
void	tests_map_simple();
void	tests_map_constructor();
void	tests_map_operator_assignation();
void	tests_map_begin();
void	tests_map_end();
void	tests_map_rbegin();
void	tests_map_rend();
void	tests_map_empty();
void	tests_map_size();
void	tests_map_max_size();
void	tests_map_operator_access();
void	tests_map_insert();
void	tests_map_erase();
void	tests_map_swap();
void	tests_map_clear();
void	tests_map_key_comp();
void	tests_map_value_comp();
void	tests_map_find();
void	tests_map_count();
void	tests_map_lower_bound();
void	tests_map_upper_bound();
void	tests_map_equal_range();
void	tests_map_get_allocator();
void	tests_map_relational_operators();
void	tests_map_swap_non_member();
//		stack
void	tests_stack_constructor();
void	tests_stack_empty();
void	tests_stack_size();
void	tests_stack_top();
void	tests_stack_push();
void	tests_stack_pop();

#endif

