diff options
Diffstat (limited to 'contrib/libstdc++/tests/tlist.cc')
| -rw-r--r-- | contrib/libstdc++/tests/tlist.cc | 151 | 
1 files changed, 0 insertions, 151 deletions
| diff --git a/contrib/libstdc++/tests/tlist.cc b/contrib/libstdc++/tests/tlist.cc deleted file mode 100644 index a37c999d0b55..000000000000 --- a/contrib/libstdc++/tests/tlist.cc +++ /dev/null @@ -1,151 +0,0 @@ -// test/demo of generic lists - -#include <assert.h> - -#define tassert(ex) {if ((ex)) cerr << #ex << "\n"; \ -                       else _assert(#ex, __FILE__,__LINE__); } - -#include <iostream.h> -#include <list.h> -#include <algo.h> - -bool int_compare(int a, int b) -{ -  return a < b; -} - -int inc(int x) -{ -  return x + 1; -} - -void print(list<int>& l) -{ -  for (list<int>::iterator it = l.begin(); it != l.end(); it++) -    cout << *it << " "; -  cout << "\n"; -} - -int is_odd(int x) -{ -  return x & 1; -} - -int is_even(int x) -{ -  return (x & 1) == 0; -} - -void sequence(list<int>& a, int lo, int hi) -{ -  back_insert_iterator<list<int> > it(a); -  while (lo <= hi) -    *it++ = lo++; -} - -int old_rand = 9999; - -int get_rand() -{ -    old_rand = ((long)old_rand * (long)1243) % (long)971; -    return old_rand; -} - -void randseq(list<int>& a, int n) -{ -  back_insert_iterator<list<int> > it(a); -  while (--n >= 0) -    *it++ = get_rand() % 50; -} - -int array1 [] = { 9, 16, 36 }; -int array2 [] = { 1, 4 }; - -int test_splice () -{ -  list<int> l1 (array1, array1 + 3); -  list<int> l2 (array2, array2 + 2); -  list<int>::iterator i1 = l1.begin (); -  l1.splice (i1, l2); -  list<int>::iterator i2 = l1.begin (); -  while (i2 != l1.end ()) -    cout << *i2++ << endl; -  return 0; -} - -main() -{ -  list<int> a;  int i; -  list<int>::iterator it, bit; -  sequence(a, 1, 20); -  cout << "\nlist<int> a = sequence(1, 20);\n"; print(a); -  for (it = a.begin (), i = 0; it != a.end (); it++, i++) -    assert (*it == i + 1); -  list<int> b; -  randseq(b, 20); -  cout << "\nlist<int> b = randseq(20);\n"; print(b); -  list<int> c; -  c.insert (c.end(), a.begin(), a.end()); -  c.insert (c.end(), b.begin(), b.end()); -  cout << "\nlist<int> c = a and b;\n"; print(c); - -  list<int> d; -  for (it = a.begin(); it != a.end(); it++) -    d.insert(d.end (), inc(*it)); -  cout << "\nlist<int> d = map(inc, a);\n"; print(d); - -  list<int> e; -  back_insert_iterator<list<int> > e_insertor (e); -  reverse_copy (a.begin(), a.end (), e_insertor); -  cout << "\nlist<int> e = reverse(a);\n"; print(e); - -  list<int> f; -  for (it = a.begin(); it != a.end(); it++) -    if (is_odd (*it)) -      f.insert(f.end (), *it); -  cout << "\nlist<int> f = select(is_odd, a);\n"; print(f); -  list<int> ff; -  for (it = f.begin(); it != f.end(); it++) -    if (is_even (*it)) -      ff.insert(ff.end (), *it); -  assert(ff.empty()); - -  int red = 0; -  for (it = a.begin(); it != a.end(); it++) -    red += *it; -  cout << "\nint  red = a.reduce(plus, 0);\n"; cout << red; -  it = a.begin(); ++it; ++it; -  int second = *it; -  cout << "\nint second = a[2];\n"; cout << second; -  list<int> g; -  for (it = a.begin(), bit = b.begin(); it != a.end () && bit != b.end (); ) -    g.insert (g.end (), *it++ + *bit++); -  cout << "\nlist<int> g = combine(plus, a, b);\n"; print(g); -  g.remove_if (is_odd); -  cout << "\ng.del(is_odd);\n"; print(g); - -  ff.erase (ff.begin (), ff.end()); -  for (it = g.begin(); it != g.end(); it++) -    if (is_odd (*it)) -      ff.insert (ff.end (), *it); -  assert(ff.empty()); - -  b.sort(); -  for (it = b.begin(); bit = it++, it != b.end (); ) assert (*it >= *bit); -  cout << "\nb.sort(int_compare);\n"; print(b); - -  list<int> h; -  back_insert_iterator<list<int> > h_insertor (h); -  merge (a.begin (), a.end (), b.begin (), b.end (), h_insertor, int_compare); -  cout << "\nlist<int> h = merge(a, b, int_compare);\n"; print(h); -  for (it = h.begin(); bit = it++, it != h.end (); ) assert (*it >= *bit); - -  cout << "\nh via iterator:\n"; -  for (it = h.begin(); it != h.end (); it++) -    cout << *it << ", "; -  cout << "\n"; - -  test_splice (); - -  cout << "\ndone\n"; -} | 
