]> git.donarmstrong.com Git - lilypond.git/blob - flower/test-std.cc
Revert "Issue 4550 (2/2) Avoid "using namespace std;" in included files"
[lilypond.git] / flower / test-std.cc
1 #define HAVE_BOOST_LAMBDA 1
2 #include "std-vector.hh"
3
4 #include <iostream>
5
6 #define YAFFUT_MAIN
7 #include "yaffut.hh"
8
9 using namespace std;
10 using std::vector;
11
12 template<typename T>
13 void
14 print (vector<T> v)
15 {
16   for (vsize i = 0; i < v.size (); i++)
17     cout << "v[" << i << "] = " << v[i] << endl;
18   cout << endl;
19 }
20
21 FUNC (vector_erase)
22 {
23   vector<int> v;
24   v.push_back (0);
25   v.push_back (1);
26   EQUAL (v.size (), vsize (2));
27   v.erase (v.begin () + 1);
28   EQUAL (v.size (), vsize (1));
29   EQUAL (v.back (), 0);
30
31   v.push_back (1);
32   EQUAL (v.size (), vsize (2));
33   v.erase (v.begin () + 0);
34   EQUAL (v.size (), vsize (1));
35   EQUAL (v.back (), 1);
36 }
37
38 FUNC (vector_slice)
39 {
40   vector<int> v;
41   v.push_back (0);
42   v.push_back (1);
43   v.push_back (2);
44   v.push_back (3);
45 #if VECTOR_SLICE
46   EQUAL (v.slice (0, 0).size (), vsize (0));
47   EQUAL (v.slice (0, v.size ()).size (), v.size ());
48   EQUAL (v.slice (1, 2).size (), vsize (1));
49 #else
50   EQUAL (vector<int> (v.begin (), v.begin ()).size (), vsize (0));
51   EQUAL (vector<int> (v.begin (), v.end ()).size (), v.size ());
52   EQUAL (vector<int> (v.begin () + 1, v.begin () + 2).size (),
53          vsize (1));
54 #endif
55 }
56
57 FUNC (vector_sorting)
58 {
59   vector<int> v;
60   v.push_back (2);
61   v.push_back (1);
62   v.push_back (0);
63 #if VECTOR_SORT
64   v.sort (default_compare);
65 #else
66   //sort (v.begin (), v.end ());
67   vector_sort (v, less<int> ());
68 #endif
69   EQUAL (v[0], 0);
70   EQUAL (v[1], 1);
71   EQUAL (v[2], 2);
72 }
73
74 FUNC (vector_insert)
75 {
76   vector<int> v;
77   v.push_back (0);
78 #if VECTOR_INSERT
79   v.insert (1, 0);
80 #else
81   v.insert (v.begin (), 1);
82 #endif
83   EQUAL (v[0], 1);
84 #if VECTOR_INSERT
85   v.insert (2, v.size ());
86 #else
87   v.insert (v.end (), 2);
88 #endif
89   EQUAL (v.back (), 2);
90   vector<int> u;
91   u.insert (u.begin (), v.begin (), v.end ());
92   EQUAL (u.size (), v.size ());
93   u.clear ();
94   u.insert (u.end (), v.begin (), v.end ());
95   EQUAL (u.size (), v.size ());
96   u.clear ();
97 }
98
99 FUNC (parray_concat)
100 {
101   vector<int *> u, v;
102   int a[5] = { 0, 1, 2, 3, 4 };
103   u.push_back (&a[0]);
104   u.push_back (&a[1]);
105   u.push_back (&a[2]);
106   v.push_back (&a[3]);
107   v.push_back (&a[4]);
108   concat (u, v);
109   EQUAL (u[0], &a[0]);
110   EQUAL (u[1], &a[1]);
111   EQUAL (u[2], &a[2]);
112   EQUAL (u[3], &a[3]);
113   EQUAL (u[4], &a[4]);
114   EQUAL (u.size (), vsize (5));
115   concat (u, v);
116   EQUAL (u.size (), vsize (7));
117
118   u.clear ();
119   v.clear ();
120   v.push_back (&a[0]);
121   v.push_back (&a[1]);
122   v.push_back (&a[2]);
123   v.push_back (&a[3]);
124   v.push_back (&a[4]);
125   concat (u, v);
126   EQUAL (u[0], &a[0]);
127   EQUAL (u[1], &a[1]);
128   EQUAL (u[2], &a[2]);
129   EQUAL (u[3], &a[3]);
130   EQUAL (u[4], &a[4]);
131   EQUAL (u.size (), vsize (5));
132 }
133
134 FUNC (parray_uniq)
135 {
136   vector<int> v;
137   v.push_back (0);
138   v.push_back (1);
139   v.push_back (0);
140   vector_sort (v, less<int> ());
141   uniq (v);
142   EQUAL (v.size (), vsize (2));
143 }
144
145 FUNC (vector_search)
146 {
147   vector<int> v;
148   v.push_back (0);
149   v.push_back (1);
150   v.push_back (2);
151   vsize i = binary_search (v, 1, less<int> ());
152   EQUAL (i, vsize (1));
153 }