cpp07/ex02/Main.cpp

95 lines
2.6 KiB
C++

#include <iostream>
#include <cstdlib>
#include <ctime>
#include "Array.hpp"
#define MAX_VAL 750
// int main(int, char**)
// {
// Array<int> numbers(MAX_VAL);
// int* mirror = new int[MAX_VAL];
// srand(time(NULL));
// for (int i = 0; i < MAX_VAL; i++)
// {
// const int value = rand();
// numbers[i] = value;
// mirror[i] = value;
// }
// {
// Array<int> tmp = numbers;
// Array<int> test(tmp);
// }
// for (int i = 0; i < MAX_VAL; i++)
// {
// if (mirror[i] != numbers[i])
// {
// std::cerr << "didn't save the same value!!" << std::endl;
// return 1;
// }
// }
// try
// {
// numbers[-2] = 0;
// }
// catch(const std::exception& e)
// {
// std::cerr << e.what() << '\n';
// }
// try
// {
// numbers[MAX_VAL] = 0;
// }
// catch(const std::exception& e)
// {
// std::cerr << e.what() << '\n';
// }
// for (int i = 0; i < MAX_VAL; i++)
// {
// numbers[i] = rand();
// }
// delete [] mirror;
// return 0;
// }
int main(int, char**)
{
std::cout << "=== Test 1: Creation d'un Array ===" << std::endl;
Array<int> numbers(MAX_VAL);
std::cout << "Array cree avec '" << numbers.size() << "' elements" << std::endl;
int* mirror = new int[MAX_VAL];
srand(time(NULL));
std::cout << "\n=== Test 2: Remplissage de l'Array ===" << std::endl;
for (int i = 0; i < MAX_VAL; i++)
{
const int value = rand();
numbers[i] = value;
mirror[i] = value;
}
std::cout << "Array rempli avec " << numbers.size() << " valeurs aleatoires" << std::endl;
int i = 0;
while (i < 5)
{
std::cout << "Valeur a l'index '" << i << "' de numbers : '" << numbers[i] << "' et de mirror : '"<< mirror[i] << "'" << std::endl;
i++;
}
std::cout << "\n=== Test 3: Copy Constructor et Destructeur ===" << std::endl;
{
std::cout << "Creation de copies dans un scope..." << std::endl;
Array<int> numbers2(58);
Array<int> tmp = numbers2;
Array<int> test(tmp);
std::cout << "Copies creees" << std::endl;
std::cout << "original size = " << numbers2.size() << " | = size " << tmp.size() << " | copy size " << test.size() << std::endl;
}
std::cout << "\n=== Test 4: set et get d'une valeur ===" << std::endl;
std::cout << "Ajout de la valeur 42 a l'index 3" << std::endl;
numbers[3] = 42;
std::cout << "La valeur a l'index 3 est : " << numbers[3] << std::endl;
delete [] mirror;
return 0;
}