test structure is functionnal

This commit is contained in:
hugogogo
2022-05-31 19:28:22 +02:00
parent 1a8b81c3cf
commit 5e65691bc8

139
main.cpp
View File

@@ -3,13 +3,57 @@
#include "colors.h"
#include <vector>
#define N_TEST "1"
/*
#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() {
int i = 0;
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::vector (constructor) :" RESET "\n";
std::vector<testt *> 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:
std::vector<int> first; // empty vector of ints
@@ -27,8 +71,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::=operator :" RESET "\n";
TEST(vector::=operator)
{
std::vector<int> foo (3,0);
std::vector<int> bar (5,0);
@@ -40,8 +83,7 @@ int main() {
std::cout << "Size of bar: " << int(bar.size()) << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::begin :" RESET "\n";
TEST(vector::begin)
{
std::vector<int> myvector;
for (int i=1; i<=5; i++) myvector.push_back(i);
@@ -52,8 +94,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::end :" RESET "\n";
TEST(vector::end)
{
std::vector<int> myvector;
for (int i=1; i<=5; i++) myvector.push_back(i);
@@ -64,8 +105,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::rbegin :" RESET "\n";
TEST(vector::rbegin)
{
std::vector<int> myvector (5); // 5 default-constructed ints
@@ -81,8 +121,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::rend :" RESET "\n";
TEST(vector::rend)
{
std::vector<int> myvector (5); // 5 default-constructed ints
@@ -98,8 +137,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::size :" RESET "\n";
TEST(vector::size)
{
std::vector<int> myints;
std::cout << "0. size: " << myints.size() << '\n';
@@ -114,8 +152,7 @@ int main() {
std::cout << "3. size: " << myints.size() << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::max_size :" RESET "\n";
TEST(vector::max_size)
{
std::vector<int> myvector;
@@ -127,8 +164,7 @@ int main() {
std::cout << "max_size: " << myvector.max_size() << "\n";
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::resize :" RESET "\n";
TEST(vector::resize)
{
std::vector<int> myvector;
@@ -145,8 +181,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::capacity :" RESET "\n";
TEST(vector::capacity)
{
std::vector<int> myvector;
@@ -158,8 +193,7 @@ int main() {
std::cout << "max_size: " << (int) myvector.max_size() << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::empty :" RESET "\n";
TEST(vector::empty)
{
std::vector<int> myvector;
int sum (0);
@@ -175,8 +209,7 @@ int main() {
std::cout << "total: " << sum << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::reserve :" RESET "\n";
TEST(vector::reserve)
{
std::vector<int>::size_type sz;
@@ -204,8 +237,7 @@ int main() {
}
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::operator[] :" RESET "\n";
TEST(vector::operator[])
{
std::vector<int> myvector (10); // 10 zero-initialized elements
@@ -229,8 +261,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::at :" RESET "\n";
TEST(vector::at)
{
std::vector<int> myvector (10); // 10 zero-initialized ints
@@ -244,8 +275,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::front :" RESET "\n";
TEST(vector::front)
{
std::vector<int> myvector;
@@ -259,8 +289,7 @@ int main() {
std::cout << "myvector.front() is now " << myvector.front() << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::back :" RESET "\n";
TEST(vector::back)
{
std::vector<int> myvector;
@@ -274,8 +303,7 @@ int main() {
std::cout << "myvector.front() is now " << myvector.front() << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::assign :" RESET "\n";
TEST(vector::assign)
{
std::vector<int> first;
std::vector<int> second;
@@ -296,19 +324,19 @@ int main() {
std::cout << "Size of third: " << int (third.size()) << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::push_back :" RESET "\n";
TEST(vector::push_back)
{
std::vector<int> myvector;
/* original :
int myint;
std::cout << "Please enter some integers (enter 0 to end):\n";
do {
std::cin >> myint;
myvector.push_back (myint);
} while (myint);
*/
// original :
//
// int myint;
// std::cout << "Please enter some integers (enter 0 to end):\n";
// do {
// std::cin >> myint;
// myvector.push_back (myint);
// } while (myint);
//
// replaced by :
int myint[] = {12434, -2432, 12, 5345, 23, 0, -4, 387, 8432, -934723, 1};
int size = sizeof(myint) / sizeof(myint[0]);
@@ -318,8 +346,7 @@ int main() {
std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::pop_back :" RESET "\n";
TEST(vector::pop_back)
{
std::vector<int> myvector;
int sum (0);
@@ -336,8 +363,7 @@ int main() {
std::cout << "The elements of myvector add up to " << sum << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::insert :" RESET "\n";
TEST(vector::insert)
{
std::vector<int> myvector (3,100);
std::vector<int>::iterator it;
@@ -362,8 +388,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::erase :" RESET "\n";
TEST(vector::erase)
{
std::vector<int> myvector;
@@ -382,8 +407,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::swap :" RESET "\n";
TEST(vector::swap)
{
std::vector<int> foo (3,100); // three ints with a value of 100
std::vector<int> bar (5,200); // five ints with a value of 200
@@ -401,8 +425,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::clear :" RESET "\n";
TEST(vector::clear)
{
std::vector<int> myvector;
myvector.push_back (100);
@@ -424,8 +447,7 @@ int main() {
std::cout << '\n';
}
std::cout << B_YELLOW "\n[" << ++i << "/" N_TEST "] "
<< "vector::get_allocator :" RESET "\n";
TEST(vector::get_allocator)
{
std::vector<int> myvector;
int * p;
@@ -445,6 +467,7 @@ int main() {
for (i=0; i<5; i++) myvector.get_allocator().destroy(&p[i]);
myvector.get_allocator().deallocate(p,5);
}
*/
return 0;
}