diff --git a/d06/ex01/Makefile b/d06/ex01/Makefile index d20930b..ed6a5da 100644 --- a/d06/ex01/Makefile +++ b/d06/ex01/Makefile @@ -32,7 +32,8 @@ D_SRCS = srcs SRCS = main.cpp D_HEADERS = headers -HEADERS = Data.hpp +HEADERS = Data.hpp \ + colors.h D_OBJS = builds OBJS = $(SRCS:%.$(EXT)=$(D_OBJS)/%.o) diff --git a/d06/ex01/headers/colors.h b/d06/ex01/headers/colors.h new file mode 100644 index 0000000..0374e42 --- /dev/null +++ b/d06/ex01/headers/colors.h @@ -0,0 +1,25 @@ +#ifndef COLORS_H +# define COLORS_H + +# define GRAY "\e[0;30m" +# define RED "\e[0;31m" +# define GREEN "\e[0;32m" +# define YELLOW "\e[0;33m" +# define BLUE "\e[0;34m" +# define PURPLE "\e[0;35m" +# define CYAN "\e[0;36m" +# define WHITE "\e[0;37m" + +# define B_GRAY "\e[1;30m" +# define B_RED "\e[1;31m" +# define B_GREEN "\e[1;32m" +# define B_YELLOW "\e[1;33m" +# define B_BLUE "\e[1;34m" +# define B_PURPLE "\e[1;35m" +# define B_CYAN "\e[1;36m" +# define B_WHITE "\e[1;37m" + +# define RESET "\e[0m" + +#endif + diff --git a/d06/ex01/main.cpp b/d06/ex01/main.cpp index 5b20135..c511bd8 100644 --- a/d06/ex01/main.cpp +++ b/d06/ex01/main.cpp @@ -1,18 +1,20 @@ #include #include #include +#include "colors.h" + #include "Data.hpp" -/* - * template < typename T > - * void printBits(T num) - * { - * unsigned long int *p = reinterpret_cast(&num); - * - * for (unsigned long int mask = 1LU << (sizeof(T) *8 -1); mask; mask >>= 1) - * std::cout << ((*p & mask) != 0); - * } - */ +#define N_TEST "3" + +template < typename T > +void printBits(T num) +{ + unsigned long int *p = reinterpret_cast(&num); + + for (unsigned long int mask = 1LU << (sizeof(T) *8 -1); mask; mask >>= 1) + std::cout << ((*p & mask) != 0); +} uintptr_t serialize(Data* ptr) { return ( reinterpret_cast(ptr) ); @@ -22,20 +24,64 @@ Data* deserialize(uintptr_t raw) { } int main() { - Data data; - Data * data_ptr = & data; - uintptr_t raw; - data.str = "42"; - raw = serialize(data_ptr); -// printBits(raw); - std::cout << " " << raw << "\n"; + int i = 0; - data_ptr = deserialize(raw); -// printBits(data_ptr); - std::cout << " " << data_ptr << "\n"; + std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " + << "test basique :" RESET "\n"; + { + Data data; + Data * data_ptr = & data; + uintptr_t raw; + data.str = "42"; + + raw = serialize(data_ptr); + std::cout << " " << raw << "\n"; + + data_ptr = deserialize(raw); + std::cout << " " << data_ptr << "\n"; + + std::cout << data_ptr->str << "\n"; + } + + std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " + << "test with bits prints :" RESET "\n"; + { + Data data; + Data * data_ptr = & data; + uintptr_t raw; + data.str = "hello you I see you"; + + raw = serialize(data_ptr); + printBits(raw); + std::cout << " " << raw << "\n"; + + data_ptr = deserialize(raw); + printBits(data_ptr); + std::cout << " " << data_ptr << "\n"; + + std::cout << data_ptr->str << "\n"; + } + + std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] " + << "test with special string :" RESET "\n"; + { + Data data; + Data * data_ptr = & data; + uintptr_t raw; + data.str = " lIUJLIJLIJLI lijlij "; + + raw = serialize(data_ptr); + printBits(raw); + std::cout << " " << raw << "\n"; + + data_ptr = deserialize(raw); + printBits(data_ptr); + std::cout << " " << data_ptr << "\n"; + + std::cout << data_ptr->str << "\n"; + } - std::cout << data_ptr->str << "\n"; return 0; } diff --git a/d06/ex01/serialize b/d06/ex01/serialize deleted file mode 100755 index 06dc451..0000000 Binary files a/d06/ex01/serialize and /dev/null differ diff --git a/d06/ex02/dynamic b/d06/ex02/dynamic deleted file mode 100755 index b572a32..0000000 Binary files a/d06/ex02/dynamic and /dev/null differ diff --git a/d06/ex02/main.cpp b/d06/ex02/main.cpp index 49a6100..9c9dcd9 100644 --- a/d06/ex02/main.cpp +++ b/d06/ex02/main.cpp @@ -10,18 +10,15 @@ Base * generate() { srand (time(NULL)); int i = rand() % 3; - if (i == 0) - { + if (i == 0) { std::cout << "A\n"; base = new A(); } - else if (i == 1) - { + else if (i == 1) { std::cout << "B\n"; base = new B(); } - else - { + else { std::cout << "C\n"; base = new C(); } @@ -47,20 +44,11 @@ void identify(Base* p) { void identify(Base& p) { Base base; - try { - base = dynamic_cast(p); - std::cout << " "; - } + try {base = dynamic_cast(p); std::cout << " ";} catch ( std::exception ) {std::cout << " ";} - try { - base = dynamic_cast(p); - std::cout << " "; - } + try {base = dynamic_cast(p); std::cout << " ";} catch ( std::exception ) {std::cout << " ";} - try { - base = dynamic_cast(p); - std::cout << " "; - } + try {base = dynamic_cast(p); std::cout << " ";} catch ( std::exception ) {std::cout << " ";} std::cout << "\n"; }