Something went wrong. Try again.
Java--'s standard template library projects.intra.42.fr/projects/cpp-module-08
Something went wrong. Try again.
1.5 kB · 61 lines
C++
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include <Span.hpp>#include <cassert>#include <cstddef>#include <deque>#include <iostream>#include <list>#include <vector>
#define ASSERT_THROWS(expression) \ try { \ (expression); \ assert(false && "Expected exception did not throw: " #expression); \ } catch (...) { \ }
int main() { std::cout << "================ Subject's Test ================" << std::endl; { Span sp = Span(5);
sp.addNumber(6); sp.addNumber(3); sp.addNumber(17); sp.addNumber(9); sp.addNumber(11);
std::cout << sp.shortestSpan() << std::endl; std::cout << sp.longestSpan() << std::endl; }
{ Span span = Span();
const int array[] = {1, 2, 4, 8, 16, 32, 64, 128}; const int size = sizeof(array) / sizeof(array[0]);
std::vector<int> vector = std::vector<int>(array, array + size); std::deque<int> deque = std::deque<int>(array, array + size); std::list<int> list = std::list<int>(array, array + size);
ASSERT_THROWS(span.addNumber(1)); ASSERT_THROWS(span.addNumbers(vector.begin(), vector.end())); ASSERT_THROWS(span.addNumbers(deque.begin(), deque.end())); ASSERT_THROWS(span.addNumbers(list.begin(), list.end())); ASSERT_THROWS(span.shortestSpan()); ASSERT_THROWS(span.longestSpan()); }
{ Span span = Span(8192);
std::vector<int> vector(8192); for (size_t i = 0; i < 8192; ++i) vector[i] = i;
span.addNumbers(vector.begin(), vector.end());
assert(span.shortestSpan() == 1); assert(span.longestSpan() == 8191); }}