From 0e51cc655c28ed3bd20b41afc30e6027120bc98a Mon Sep 17 00:00:00 2001 From: hugogogo Date: Tue, 31 May 2022 19:52:03 +0200 Subject: [PATCH] creation of tests.h --- Makefile | 3 +- headers/colors.h | 1 - headers/tests.h | 28 +++++ main.cpp | 318 ++++++++++++++++++++++++----------------------- 4 files changed, 190 insertions(+), 160 deletions(-) create mode 100644 headers/tests.h diff --git a/Makefile b/Makefile index dfceebd..4a2a272 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,8 @@ D_SRCS = srcs SRCS = main.cpp D_HEADERS = headers -HEADERS = colors.h +HEADERS = colors.h \ + tests.h D_OBJS = builds OBJS = $(SRCS:%.$(EXT)=$(D_OBJS)/%.o) diff --git a/headers/colors.h b/headers/colors.h index 0374e42..05d4f2c 100644 --- a/headers/colors.h +++ b/headers/colors.h @@ -22,4 +22,3 @@ # define RESET "\e[0m" #endif - diff --git a/headers/tests.h b/headers/tests.h new file mode 100644 index 0000000..12a747e --- /dev/null +++ b/headers/tests.h @@ -0,0 +1,28 @@ +#ifndef TESTS_H +# define TESTS_H + +#include + +# define TEST(s) \ + {\ + test_title = #s;\ + struct tester : public test_base {\ + void func() + +# define TESTEND \ + };\ + test = new(tester);\ + test->title = test_title;\ + test_list.push_back(test);\ + } + +struct test_base { + std::string title; + virtual void func() {} +}; + +std::vector test_list; +test_base *test; +std::string test_title; + +#endif diff --git a/main.cpp b/main.cpp index 6a1714f..656e66a 100644 --- a/main.cpp +++ b/main.cpp @@ -1,58 +1,12 @@ #include #include #include "colors.h" +#include "tests.h" + #include -/* -#define N_TEST "24" -#define TEST(s) std::cout \ - << "\n" B_YELLOW "[" << ++test << "/" N_TEST "] " \ - << #s " :" RESET "\n"; -*/ - -#define TEST \ - {\ - struct tester : public testt {\ - void func() -#define TESTNAME(s) \ - };\ - test = new(tester);\ - test->title = #s;\ - testouille.push_back(test);\ - } - -struct testt { - std::string title; - virtual void func() { - std::cout << "houre\n"; - } -}; - int main() { - std::vector testouille; - testt *test; - - TEST { - std::cout << "here\n"; - } TESTNAME(name of first test) - - TEST { - std::cout << "here2\n"; - } TESTNAME(name of second test) - - int size = testouille.size(); - for(int i = 0; i < size; i++) - { - std::cout - << "\n" B_YELLOW "[" << i + 1 << "/" << size << "] " \ - << testouille[i]->title << " :" RESET "\n"; - testouille[i]->func(); - } - -/* - int test = 0; - TEST(vector::vector (constructor)) { // constructors used in the same order as described above: @@ -70,6 +24,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::=operator) { @@ -82,6 +37,7 @@ int main() { std::cout << "Size of foo: " << int(foo.size()) << '\n'; std::cout << "Size of bar: " << int(bar.size()) << '\n'; } + TESTEND TEST(vector::begin) { @@ -93,6 +49,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::end) { @@ -104,6 +61,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::rbegin) { @@ -120,6 +78,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::rend) { @@ -136,6 +95,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::size) { @@ -151,6 +111,7 @@ int main() { myints.pop_back(); std::cout << "3. size: " << myints.size() << '\n'; } + TESTEND TEST(vector::max_size) { @@ -163,6 +124,7 @@ int main() { std::cout << "capacity: " << myvector.capacity() << "\n"; std::cout << "max_size: " << myvector.max_size() << "\n"; } + TESTEND TEST(vector::resize) { @@ -180,6 +142,7 @@ int main() { std::cout << ' ' << myvector[i]; std::cout << '\n'; } + TESTEND TEST(vector::capacity) { @@ -192,6 +155,7 @@ int main() { std::cout << "capacity: " << (int) myvector.capacity() << '\n'; std::cout << "max_size: " << (int) myvector.max_size() << '\n'; } + TESTEND TEST(vector::empty) { @@ -208,6 +172,7 @@ int main() { std::cout << "total: " << sum << '\n'; } + TESTEND TEST(vector::reserve) { @@ -236,6 +201,7 @@ int main() { } } } + TESTEND TEST(vector::operator[]) { @@ -260,6 +226,7 @@ int main() { std::cout << ' ' << myvector[i]; std::cout << '\n'; } + TESTEND TEST(vector::at) { @@ -274,6 +241,7 @@ int main() { std::cout << ' ' << myvector.at(i); std::cout << '\n'; } + TESTEND TEST(vector::front) { @@ -288,6 +256,7 @@ int main() { std::cout << "myvector.front() is now " << myvector.front() << '\n'; } + TESTEND TEST(vector::back) { @@ -302,6 +271,7 @@ int main() { std::cout << "myvector.front() is now " << myvector.front() << '\n'; } + TESTEND TEST(vector::assign) { @@ -323,6 +293,7 @@ int main() { std::cout << "Size of second: " << int (second.size()) << '\n'; std::cout << "Size of third: " << int (third.size()) << '\n'; } + TESTEND TEST(vector::push_back) { @@ -345,6 +316,7 @@ int main() { std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n"; } + TESTEND TEST(vector::pop_back) { @@ -362,6 +334,7 @@ int main() { std::cout << "The elements of myvector add up to " << sum << '\n'; } + TESTEND TEST(vector::insert) { @@ -387,6 +360,7 @@ int main() { std::cout << ' ' << *it; std::cout << '\n'; } + TESTEND TEST(vector::erase) { @@ -406,6 +380,7 @@ int main() { std::cout << ' ' << myvector[i]; std::cout << '\n'; } + TESTEND TEST(vector::swap) { @@ -424,6 +399,7 @@ int main() { std::cout << ' ' << bar[i]; std::cout << '\n'; } + TESTEND TEST(vector::clear) { @@ -446,6 +422,7 @@ int main() { std::cout << ' ' << myvector[i]; std::cout << '\n'; } + TESTEND TEST(vector::get_allocator) { @@ -467,128 +444,153 @@ int main() { for (i=0; i<5; i++) myvector.get_allocator().destroy(&p[i]); myvector.get_allocator().deallocate(p,5); } -*/ + TESTEND + + + // execute tests and print them : + + int size = test_list.size(); + for(int i = 0; i < size; i++) + { + std::cout + << "\n" B_YELLOW "[" << i + 1 << "/" << size << "] " + << test_list[i]->title << " :" RESET "\n"; + test_list[i]->func(); + } return 0; } -/* original main - -#include -#include -#include -#if 1 //CREATE A REAL STL EXAMPLE - #include - #include - #include - namespace ft = std; -#else - #include - #include - #include -#endif - -#include - -#define MAX_RAM 4294967296 -#define BUFFER_SIZE 4096 -struct Buffer -{ - int idx; - char buff[BUFFER_SIZE]; -}; -#define COUNT (MAX_RAM / (int)sizeof(Buffer)) -template -class MutantStack : public ft::stack -{ -public: - MutantStack() {} - MutantStack(const MutantStack& src) { *this = src; } - MutantStack& operator=(const MutantStack& rhs) - { - this->c = rhs.c; - return *this; - } - ~MutantStack() {} - typedef typename ft::stack::container_type::iterator iterator; - iterator begin() { return this->c.begin(); } - iterator end() { return this->c.end(); } -}; -int main(int argc, char** argv) { - if (argc != 2) - { - std::cerr << "Usage: ./test seed" << std::endl; - std::cerr << "Provide a seed please" << std::endl; - std::cerr << "Count value:" << COUNT << std::endl; - return 1; - } - const int seed = atoi(argv[1]); - srand(seed); - ft::vector vector_str; - ft::vector vector_int; - ft::stack stack_int; - ft::vector vector_buffer; - ft::stack > stack_deq_buffer; - ft::map map_int; - for (int i = 0; i < COUNT; i++) - { - vector_buffer.push_back(Buffer()); - } - for (int i = 0; i < COUNT; i++) - { - const int idx = rand() % COUNT; - vector_buffer[idx].idx = 5; - } - ft::vector().swap(vector_buffer); - try - { - for (int i = 0; i < COUNT; i++) - { - const int idx = rand() % COUNT; - vector_buffer.at(idx); - std::cerr << "Error: THIS VECTOR SHOULD BE EMPTY!!" < copy = map_int; - } - MutantStack iterable_stack; - for (char letter = 'a'; letter <= 'z'; letter++) - iterable_stack.push(letter); - for (MutantStack::iterator it = iterable_stack.begin(); it != iterable_stack.end(); it++) - { - std::cout << *it; - } - std::cout << std::endl; - return (0); -} - -*/ +////////////////////////////////////////////////////////////////////////////// +// +// original main +// +// #include +// #include +// #include +// #if 1 //CREATE A REAL STL EXAMPLE +// #include +// #include +// #include +// namespace ft = std; +// #else +// #include +// #include +// #include +// #endif +// +// #include +// +// #define MAX_RAM 4294967296 +// #define BUFFER_SIZE 4096 +// struct Buffer +// { +// int idx; +// char buff[BUFFER_SIZE]; +// }; +// +// +// #define COUNT (MAX_RAM / (int)sizeof(Buffer)) +// +// template +// class MutantStack : public ft::stack +// { +// public: +// MutantStack() {} +// MutantStack(const MutantStack& src) { *this = src; } +// MutantStack& operator=(const MutantStack& rhs) +// { +// this->c = rhs.c; +// return *this; +// } +// ~MutantStack() {} +// +// typedef typename ft::stack::container_type::iterator iterator; +// +// iterator begin() { return this->c.begin(); } +// iterator end() { return this->c.end(); } +// }; +// +// int main(int argc, char** argv) { +// if (argc != 2) +// { +// std::cerr << "Usage: ./test seed" << std::endl; +// std::cerr << "Provide a seed please" << std::endl; +// std::cerr << "Count value:" << COUNT << std::endl; +// return 1; +// } +// const int seed = atoi(argv[1]); +// srand(seed); +// +// ft::vector vector_str; +// ft::vector vector_int; +// ft::stack stack_int; +// ft::vector vector_buffer; +// ft::stack > stack_deq_buffer; +// ft::map map_int; +// +// for (int i = 0; i < COUNT; i++) +// { +// vector_buffer.push_back(Buffer()); +// } +// +// for (int i = 0; i < COUNT; i++) +// { +// const int idx = rand() % COUNT; +// vector_buffer[idx].idx = 5; +// } +// ft::vector().swap(vector_buffer); +// +// try +// { +// for (int i = 0; i < COUNT; i++) +// { +// const int idx = rand() % COUNT; +// vector_buffer.at(idx); +// std::cerr << "Error: THIS VECTOR SHOULD BE EMPTY!!" < copy = map_int; +// } +// MutantStack iterable_stack; +// for (char letter = 'a'; letter <= 'z'; letter++) +// iterable_stack.push(letter); +// for (MutantStack::iterator it = iterable_stack.begin(); it != iterable_stack.end(); it++) +// { +// std::cout << *it; +// } +// std::cout << std::endl; +// return (0); +// } +// +//////////////////////////////////////////////////////////////////////////////