PikaScript
QStrings.cpp
1 
50 #if !defined(QStrings_h)
51 #include "QStrings.h"
52 #endif
53 #include "assert.h"
54 
55 namespace QStrings {
56 
57 void unitTest() {
58  QString<char> s;
59  s = "hej";
60  QString<char> t = s;
61  s += " du";
62  s += " glade ";
63  s += s.substr(4, 3);
64  s += s;
65  s = s + "ta en spade";
66  assert(s == "hej du glade du hej du glade du ta en spade");
67  assert(s < "hej du glade du hej du glade du ta en spadef");
68  assert(s < "hej du glade du hej du glade du ta en spadf");
69  assert(s <= "hej du glade du hej du glade du ta en spade");
70  assert(s <= "hej du glade du hej du glade du ta en spadf");
71  assert(s >= "hej du glade du hej du glade du ta en spadd");
72  assert(s >= "hej du glade du hej du glade du ta en spade");
73  assert(s > "hej du glade du hej du glade du ta en spadd");
74  assert(s > "hej du glade du hej du glade du ta en spad");
75  assert(s != "hej du glade du hej du glade du ta en spad");
76  assert(s != "hej du glade du hej du glade du ta en spadd");
77  t = "";
78  const QString<char>& cs = s;
79  for (QString<char>::const_iterator it = cs.begin(); it != cs.end(); ++it) {
80  const char c[1] = { *it };
81  t += QString<char>(c, 1);
82  }
83  assert(t == s);
84  assert(static_cast<size_t>(cs.end() - cs.begin()) == cs.size());
85  assert(cs.end() - cs.size() == cs.begin());
86  assert(cs.begin() + cs.size() == cs.end());
87  assert(QString<char>(cs.begin(), cs.begin() + 3) == "hej");
88  assert(QString<char>(cs.begin() + 4, cs.begin() + 6) == "du");
89  assert(QString<char>(cs.end() - 5, cs.end()) == "spade");
90 
91  s = "abc";
92  t = s;
93  const QString<char>& u = t;
94  QString<char>::iterator it = t.begin();
95  QString<char>::const_iterator it2 = u.begin();
96  *it = 'c';
97  *it = *it2;
98  assert(it >= t.begin() && it <= t.end());
99  assert(it2 >= u.begin() && it2 <= u.end());
100  assert(s == "abc");
101 }
102 
103 }