1// 2001-10-30 Benjamin Kosnik  <bkoz@redhat.com>
2
3// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
4//
5// This file is part of the GNU ISO C++ Library.  This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 2, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING.  If not, write to the Free
18// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19// USA.
20
21// 21.3.5 string modifiers
22
23#include <string>
24#include <cstdio>
25#include <testsuite_hooks.h>
26
27// assign(const basic_string& __str, size_type __pos, size_type __n)
28void
29test02()
30{
31  bool test __attribute__((unused)) = true;
32
33  using namespace std;
34
35  string one = "Selling England by the pound";
36  string two = one;
37  string three = "Brilliant trees";
38
39  one.assign(one, 8, 100);
40  VERIFY( one == "England by the pound" );
41
42  one.assign(one, 8, 0);
43  VERIFY( one == "" );
44
45  one.assign(two, 8, 7);
46  VERIFY( one == "England" );
47
48  one.assign(three, 10, 100);
49  VERIFY( one == "trees" );
50
51  three.assign(one, 0, 3);
52  VERIFY( three == "tre" );
53}
54
55int main()
56{
57  test02();
58  return 0;
59}
60