diff options
Diffstat (limited to '3rdparty/bx/tests/vector_shrinktofit_test.cpp')
-rw-r--r-- | 3rdparty/bx/tests/vector_shrinktofit_test.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/3rdparty/bx/tests/vector_shrinktofit_test.cpp b/3rdparty/bx/tests/vector_shrinktofit_test.cpp new file mode 100644 index 00000000000..cac2a0d9311 --- /dev/null +++ b/3rdparty/bx/tests/vector_shrinktofit_test.cpp @@ -0,0 +1,68 @@ +/*- + * Copyright 2012-2014 Matthew Endsley + * All rights reserved + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted providing that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "test.h" + +#include <tinystl/allocator.h> +#include <tinystl/vector.h> + +TEST(vector_shrinktofit) { + typedef tinystl::vector<int> vector; + + { + vector v; + CHECK(v.capacity() == 0); + v.clear(); + v.shrink_to_fit(); + CHECK(v.capacity() == 0); + } + + { + vector v(10, 0); + CHECK(v.capacity() >= 10); + v.shrink_to_fit(); + CHECK(v.capacity() == 10); + } + + { + vector v(10, 0); + CHECK(v.capacity() >= 10); + v.erase(v.end() - 1, v.end()); + CHECK(v.size() == 9); + CHECK(v.capacity() >= 10); + v.shrink_to_fit(); + CHECK(v.capacity() == 9); + } + + { + vector v(10, 0); + CHECK(v.capacity() >= 10); + const int* ptr = v.data(); + v.shrink_to_fit(); + CHECK(v.capacity() >= 10); + CHECK(v.data() == ptr); + } +} |