From 61b9a7258a7693d7f3674a5a1daf7b036ff1d382 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 6 Sep 2015 18:46:46 +0000 Subject: Import libc++ 3.7.0 release (r246257). --- .../string_assign/iterator.pass.cpp | 150 +++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp (limited to 'test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp') diff --git a/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp new file mode 100644 index 000000000000..83b5dd14b3f6 --- /dev/null +++ b/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp @@ -0,0 +1,150 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// + +// template +// basic_string& assign(InputIterator first, InputIterator last); + +#include +#include + +#include "../../input_iterator.h" +#include "min_allocator.h" + +template +void +test(S s, It first, It last, S expected) +{ + s.assign(first, last); + assert(s.__invariants()); + assert(s == expected); +} + +int main() +{ + { + typedef std::string S; + const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + test(S(), s, s, S()); + test(S(), s, s+1, S("A")); + test(S(), s, s+10, S("ABCDEFGHIJ")); + test(S(), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345"), s, s, S()); + test(S("12345"), s, s+1, S("A")); + test(S("12345"), s, s+10, S("ABCDEFGHIJ")); + test(S("12345"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("1234567890"), s, s, S()); + test(S("1234567890"), s, s+1, S("A")); + test(S("1234567890"), s, s+10, S("ABCDEFGHIJ")); + test(S("1234567890"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345678901234567890"), s, s, S()); + test(S("12345678901234567890"), s, s+1, S("A")); + test(S("12345678901234567890"), s, s+10, S("ABCDEFGHIJ")); + test(S("12345678901234567890"), s, s+52, + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S(), input_iterator(s), input_iterator(s), S()); + test(S(), input_iterator(s), input_iterator(s+1), S("A")); + test(S(), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S(), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345"), input_iterator(s), input_iterator(s), + S()); + test(S("12345"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("12345"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("12345"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("1234567890"), input_iterator(s), input_iterator(s), + S()); + test(S("1234567890"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("1234567890"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("1234567890"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345678901234567890"), input_iterator(s), input_iterator(s), + S()); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + } +#if __cplusplus >= 201103L + { + typedef std::basic_string, min_allocator> S; + const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + test(S(), s, s, S()); + test(S(), s, s+1, S("A")); + test(S(), s, s+10, S("ABCDEFGHIJ")); + test(S(), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345"), s, s, S()); + test(S("12345"), s, s+1, S("A")); + test(S("12345"), s, s+10, S("ABCDEFGHIJ")); + test(S("12345"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("1234567890"), s, s, S()); + test(S("1234567890"), s, s+1, S("A")); + test(S("1234567890"), s, s+10, S("ABCDEFGHIJ")); + test(S("1234567890"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345678901234567890"), s, s, S()); + test(S("12345678901234567890"), s, s+1, S("A")); + test(S("12345678901234567890"), s, s+10, S("ABCDEFGHIJ")); + test(S("12345678901234567890"), s, s+52, + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S(), input_iterator(s), input_iterator(s), S()); + test(S(), input_iterator(s), input_iterator(s+1), S("A")); + test(S(), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S(), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345"), input_iterator(s), input_iterator(s), + S()); + test(S("12345"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("12345"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("12345"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("1234567890"), input_iterator(s), input_iterator(s), + S()); + test(S("1234567890"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("1234567890"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("1234567890"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + + test(S("12345678901234567890"), input_iterator(s), input_iterator(s), + S()); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+1), + S("A")); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+10), + S("ABCDEFGHIJ")); + test(S("12345678901234567890"), input_iterator(s), input_iterator(s+52), + S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); + } +#endif +} -- cgit v1.2.3