diff options
Diffstat (limited to 'contrib/libstdc++/tests/tstring.cc')
| -rw-r--r-- | contrib/libstdc++/tests/tstring.cc | 249 | 
1 files changed, 0 insertions, 249 deletions
diff --git a/contrib/libstdc++/tests/tstring.cc b/contrib/libstdc++/tests/tstring.cc deleted file mode 100644 index 833d3d964604..000000000000 --- a/contrib/libstdc++/tests/tstring.cc +++ /dev/null @@ -1,249 +0,0 @@ -// Tests for the -*- C++ -*- string classes. -// Copyright (C) 1994 Free Software Foundation - -// This file is part of the GNU ANSI C++ Library.  This library is free -// software; you can redistribute it and/or modify it under the terms of -// the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING.  If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. - -#include <string> -#include <algorithm> -#include <iostream.h> -#include <stdlib.h> -#include <assert.h> - -string X = "Hello"; -string Y = "world"; -string N = "123"; -string c; -const char*  s = ","; - -void decltest() -{ -  string x; -  cout << "an empty string:" << x << "\n"; -  assert(x == ""); - -  string y = "Hello"; -  cout << "A string initialized to Hello:" << y << "\n"; -  assert(y == "Hello"); - -  if (y[y.length()-1] == 'o') -	y = y + '\n'; -  assert(y == "Hello\n"); -  y = "Hello"; - -  string a = y; -  cout << "A string initialized to previous string:" << a << "\n"; -  assert(a == "Hello"); -  assert(a == y); - -  string b (a, 1, 2); -  cout << "A string initialized to (previous string, 1, 2):" << b << "\n"; -  assert(b == "el"); - -  char ch = '@'; -  string z (1, ch); -  cout << "A string initialized to @:" << z << "\n"; -  assert (z == "@"); - -  string n ("20"); -  cout << "A string initialized to 20:" << n << "\n"; -  assert(n == "20"); - -  int i = atoi(n.c_str ()); -  double f = atof(n.c_str ()); -  cout << "n = " << n << " atoi(n) = " << i << " atof(n) = " << f << "\n"; -  assert(i == 20); -  assert(f == 20); - -  int ar[] = { 'H', 'e', 'l', 'l', 'o' }; -  string is (ar, ar+sizeof(ar)/sizeof(ar[0])); -  cout << "is = " << is << endl; -  assert (is == "Hello"); -} - -void cattest() -{ -  string x = X; -  string y = Y; -  string z = x + y; -  cout << "z = x + y = " << z << "\n"; -  assert(z == "Helloworld"); - -  x += y; -  cout << "x += y; x = " << x << "\n"; -  assert(x == "Helloworld"); - -  y = Y; -  x = X; -  y.insert (0, x); -  cout << "y.insert (0, x); y = " << y << "\n"; -  assert(y == "Helloworld"); - -  y = Y; -  x = X; -  x = x + y + x; -  cout << "x = x + y + x; x = " << x << "\n"; -  assert(x == "HelloworldHello"); - -  y = Y; -  x = X; -  x = y + x + x; -  cout << "x = y + x + x; x = " << x << "\n"; -  assert(x == "worldHelloHello"); - -  x = X; -  y = Y; -  z = x + s + ' ' + y.substr (y.find ('w'), 1) + y.substr (y.find ('w') + 1) + "."; -  cout << "z = x + s +  + y.substr (y.find (w), 1) + y.substr (y.find (w) + 1) + . = " << z << "\n"; -  assert(z == "Hello, world."); -} - -void -findtest() -{ -  string x; -  string::size_type pos; -  pos = x.find_last_not_of('X'); -  assert(pos == string::npos); -  pos = x.find_last_not_of("XYZ"); -  assert(pos == string::npos); - -  string y("a"); -  pos = y.find_last_not_of('X'); -  assert(pos == 0); -  pos = y.find_last_not_of('a'); -  assert(pos == string::npos); -  pos = y.find_last_not_of("XYZ"); -  assert(pos == 0); -  pos = y.find_last_not_of("a"); -  assert(pos == string::npos); - -  string z("ab"); -  pos = z.find_last_not_of('X'); -  assert(pos == 1); -  pos = z.find_last_not_of("XYZ"); -  assert(pos == 1); -  pos = z.find_last_not_of('b'); -  assert(pos == 0); -  pos = z.find_last_not_of("Xb"); -  assert(pos == 0); -  pos = z.find_last_not_of("Xa"); -  assert(pos == 1); -  pos = z.find_last_of("ab"); -  assert(pos == 1); -  pos = z.find_last_of("Xa"); -  assert(pos == 0); -  pos = z.find_last_of("Xb"); -  assert(pos == 1); -  pos = z.find_last_of("XYZ"); -  assert(pos == string::npos); -  pos = z.find_last_of('a'); -  assert(pos == 0); -  pos = z.find_last_of('b'); -  assert(pos == 1); -  pos = z.find_last_of('X'); -  assert(pos == string::npos); -} - -void comparetest() -{   -  string x = X; -  string y = Y; -  string n = N; -  string z = x + y; - -  assert(x != y); -  assert(x == "Hello"); -  assert(x != z.substr (0, 4)); -  assert(x.compare (y) < 0); -  assert(x.compare (z.substr (0, 6)) < 0); - -  assert(x.find ("lo") == 3); -  assert(x.find ("l", 2) == 2); -  assert(x.rfind ("l") == 3); -} - -void substrtest() -{ -  string x = X; - -  char ch = x[0]; -  cout << "ch = x[0] = " << ch << "\n"; -  assert(ch == 'H'); - -  string z = x.substr (2, 3); -  cout << "z = x.substr (2, 3) = " << z << "\n"; -  assert(z == "llo"); - -  x.replace (2, 2, "r"); -  cout << "x.replace (2, 2, r); x = " << x << "\n"; -  assert(x == "Hero"); - -  x = X; -  x.replace (0, 1, 'j'); -  cout << "x.replace (0, 1, 'j'); x = " << x << "\n"; -  assert(x == "jello"); - -  int ar[] = { 'H', 'e', 'l', 'l', 'o' }; -  x.replace (find (x.begin (), x.end (), 'l'), -	     find (x.rbegin (), x.rend (), 'l').base (), -	     ar, ar+sizeof(ar)/sizeof(ar[0])); -  cout << "x = " << x << endl; -  assert (x == "jeHelloo"); -} - -void iotest() -{ -  string z; -  cout << "enter a word:"; -  cin >> z; -  cout << "word =" << z << " "; -  cout << "length = " << z.length() << "\n"; -} - -void identitytest(string a, string b) -{ -  string x = a; -  string y = b; -  x += b; -  y.insert (0, a); -  assert((a + b) == x); -  assert((a + b) == y); -  assert(x == y); -   -  assert((a + b + a) == (a + (b + a))); - -  x.erase (x.rfind (b)); -  assert(x == a); - -  y.replace (0, y.rfind (b), b); -  assert(y == (b + b)); -  y.replace (y.find (b), b.length (), a); -  assert(y == (a + b)); -} - -int main() -{ -  decltest(); -  cattest(); -  comparetest(); -  findtest(); -  substrtest(); -  identitytest(X, X); -  identitytest(X, Y); -  identitytest(X+Y+N+X+Y+N, "A string that will be used in identitytest but is otherwise just another useless string."); -  iotest(); -  cout << "\nEnd of test\n"; -  return 0; -}  | 
