1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
12 // reference operator[](size_type __i);
13 // const_reference operator[](size_type __i) const;
15 // reference at(size_type __i);
16 // const_reference at(size_type __i) const;
19 // const_reference front() const;
22 // const_reference back() const;
27 #include "min_allocator.h"
31 make(int size, int start = 0 )
33 const int b = 4096 / sizeof(int);
37 init = (start+1) / b + ((start+1) % b != 0);
42 for (int i = 0; i < init-start; ++i)
44 for (int i = 0; i < size; ++i)
46 for (int i = 0; i < start; ++i)
54 std::deque<int> c = make<std::deque<int> >(10);
55 for (int i = 0; i < 10; ++i)
57 for (int i = 0; i < 10; ++i)
59 assert(c.front() == 0);
60 assert(c.back() == 9);
63 const std::deque<int> c = make<std::deque<int> >(10);
64 for (int i = 0; i < 10; ++i)
66 for (int i = 0; i < 10; ++i)
68 assert(c.front() == 0);
69 assert(c.back() == 9);
71 #if TEST_STD_VER >= 11
73 std::deque<int, min_allocator<int>> c = make<std::deque<int, min_allocator<int>> >(10);
74 for (int i = 0; i < 10; ++i)
76 for (int i = 0; i < 10; ++i)
78 assert(c.front() == 0);
79 assert(c.back() == 9);
82 const std::deque<int, min_allocator<int>> c = make<std::deque<int, min_allocator<int>> >(10);
83 for (int i = 0; i < 10; ++i)
85 for (int i = 0; i < 10; ++i)
87 assert(c.front() == 0);
88 assert(c.back() == 9);