OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [testsuite/] [ext/] [rope/] [3.cc] - Blame information for rev 776

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 742 jeremybenn
// Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
2
//
3
// This file is part of the GNU ISO C++ Library.  This library is free
4
// software; you can redistribute it and/or modify it under the
5
// terms of the GNU General Public License as published by the
6
// Free Software Foundation; either version 3, or (at your option)
7
// any later version.
8
 
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
 
14
// You should have received a copy of the GNU General Public License along
15
// with this library; see the file COPYING3.  If not see
16
// <http://www.gnu.org/licenses/>.
17
 
18
// rope (SGI extension)
19
 
20
#include <ext/rope>
21
#include <testsuite_hooks.h>
22
 
23
const char base[] =
24
"Happy families are all alike; every unhappy family is unhappy in   \
25
its own way.                                                        \
26
                                                                    \
27
Everything was in confusion in the Oblonskys' house.  The wife      \
28
had discovered that the husband was carrying on an intrigue with    \
29
a French girl, who had been a governess in their family, and she    \
30
had announced to her husband that she could not go on living in     \
31
the same house with him.  This position of affairs had now lasted   \
32
three days, and not only the husband and wife themselves, but all   \
33
the members of their family and household, were painfully           \
34
conscious of it.  Every person in the house felt that there was     \
35
so sense in their living together, and that the stray people        \
36
brought together by chance in any inn had more in common with one   \
37
another than they, the members of the family and household of the   \
38
Oblonskys.  The wife did not leave her own room, the husband had    \
39
not been at home for three days.  The children ran wild all over    \
40
the house; the English governess quarreled with the housekeeper,    \
41
and wrote to a friend asking her to look out for a new situation    \
42
for her; the man-cook had walked off the day before just at         \
43
dinner time; the kitchen-maid, and the coachman had given           \
44
warning."
45
  ;
46
 
47
int baselen = sizeof(base) - 1;
48
 
49
template<class StringType>
50
StringType
51
multiply(const StringType& s, int n)
52
{
53
  StringType result;
54
  while (n > 0)
55
    {
56
      result += s;
57
      --n;
58
    }
59
  return result;
60
}
61
 
62
template <class StringType>
63
StringType
64
mung_substrings(const StringType& s, int len, int n, int skip)
65
{
66
  StringType result;
67
  int start = 0;
68
  while (n > 0)
69
    {
70
      StringType tmp = s.substr (start, len);
71
      result += tmp;
72
      --n;
73
      start += skip;
74
    }
75
  return result;
76
}
77
 
78
void
79
test01()
80
{
81
  using namespace __gnu_cxx;
82
  bool test __attribute__((unused)) = true;
83
 
84
  crope r;
85
  r = multiply(crope(base), 100000);
86
 
87
  crope r1;
88
  r1 = mung_substrings(r, 100000, 500, 73);
89
 
90
  VERIFY( r1.size() == 50000000 );
91
  VERIFY( r1.substr(88888, 6)[0] == 's' );
92
  VERIFY( r1.substr(88888, 6)[2] == 'h' );
93
}
94
 
95
int main()
96
{
97
  test01();
98
  return 0;
99
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.