From e4cccb3fc5554e64deb0ee113be814e9ad6428d0 Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 1 Mar 2014 19:05:51 +0000 Subject: [PATCH] .upptst git-svn-id: svn://ultimatepp.org/upp/trunk@6973 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- upptst/String/String.cpp | 113 ---------------- upptst/StringMethods/StringMethods.cpp | 174 +++++++++++++++++++++++++ upptst/StringMethods/StringMethods.upp | 9 ++ upptst/StringMethods/init | 4 + upptst/Xmlize/Xmlize.cpp | 2 +- 5 files changed, 188 insertions(+), 114 deletions(-) create mode 100644 upptst/StringMethods/StringMethods.cpp create mode 100644 upptst/StringMethods/StringMethods.upp create mode 100644 upptst/StringMethods/init diff --git a/upptst/String/String.cpp b/upptst/String/String.cpp index 2bc670549..a796cd266 100644 --- a/upptst/String/String.cpp +++ b/upptst/String/String.cpp @@ -15,118 +15,6 @@ String AsString(const HT& s) } } -template -void ATest() -{ - Str x = "0123456789012345"; - ASSERT(x.FindFirstOf("654") == 4); - ASSERT(x.FindFirstOf("46") == 4); - ASSERT(x.FindFirstOf("32", 10) == 12); - ASSERT(x.FindFirstOf("23", 10) == 12); - ASSERT(x.FindFirstOf(x) == 0); - ASSERT(x.Mid(3, 4) == Str("3456")); - ASSERT(x.Mid(3) == Str("3456789012345")); - ASSERT(x.Left(2) == Str("01")); - ASSERT(x.Right(2) == Str("45")); - ASSERT(x.Find('3') == 3); - ASSERT(x.ReverseFind('3') == 13); - ASSERT(x.GetLength() == 16); - ASSERT(x.Begin() + x.GetLength() == x.End()); - ASSERT(x[0] == '0'); - x.Insert(1, 'a'); - ASSERT(x == Str("0a123456789012345")); - x.Insert(2, ~Str("bcd"), 2); - ASSERT(x == Str("0abc123456789012345")); - x.Insert(1, ~Str("_")); - ASSERT(x == Str("0_abc123456789012345")); - x.Insert(1, x); - ASSERT(x == Str("00_abc123456789012345_abc123456789012345")); - x.Remove(1, 24); - ASSERT(x == Str("0123456789012345")); - Str b = "013"; - ASSERT(x < b); - ASSERT(x <= b); - ASSERT(x <= x); - ASSERT(x == x); - ASSERT(b > x); - ASSERT(b >= x); - ASSERT(x >= x); - ASSERT(x != b); - ASSERT(x.Compare(b) < 0); - ASSERT(b.Compare(x) > 0); - const char *s = "013"; - ASSERT(x < s); - ASSERT(x <= s); - ASSERT(x <= x); - ASSERT(x == x); - ASSERT(s > x); - ASSERT(s >= x); - ASSERT(x >= x); - ASSERT(x != s); - ASSERT(s != x); - ASSERT(s == b); - ASSERT(b == s); - ASSERT(x.Compare(s) < 0); - ASSERT(b.Compare(s) == 0); - ASSERT(!b.IsEqual(x)); - ASSERT(b.IsEqual(b)); - ASSERT(b.IsEqual(s)); - ASSERT(!x.IsEqual(b)); - b.Cat("ab"); - ASSERT(b == Str("013ab")); - b.Cat("ABCD", 2); - ASSERT(b == Str("013abAB")); - b.Cat('x', 3); - ASSERT(b == Str("013abABxxx")); - x.Cat(b); - ASSERT(x == Str("0123456789012345013abABxxx")); - b.Cat(x, 4); - ASSERT(b == Str("013abABxxx0123")); - b.Cat(~x, ~x + 3); - ASSERT(b == Str("013abABxxx0123012")); - b.Cat((byte *)s, 2); - ASSERT(b == Str("013abABxxx012301201")); - ASSERT((Str().Cat() << 123) == Str("123")); - ASSERT(b.Find(2, "ABc", 1) == 5); - ASSERT(b.Find(2, "ABc", 6) < 0); - ASSERT(b.Find("AB", 0) == 5); - ASSERT(b.Find("AB", 6) == -1); - ASSERT(b.Find(b) == 0); - ASSERT(b.Find(b, 1) < 0); - ASSERT(b.StartsWith("013")); - ASSERT(b.StartsWith(Str("013"))); - ASSERT(!b.StartsWith("012")); - ASSERT(!b.StartsWith(Str("012"))); - ASSERT(b.StartsWith("012", 2)); - ASSERT(b.EndsWith("201")); - ASSERT(b.EndsWith(Str("201"))); - ASSERT(!b.EndsWith("202")); - ASSERT(!b.EndsWith(Str("202"))); - x = "ab"; - b = "12"; - ASSERT(x + b == Str("ab12")); - ASSERT(x + "xx" == Str("abxx")); - ASSERT("xx" + x == Str("xxab")); - ASSERT(x + 'z' == Str("abz")); - ASSERT('z' + x == Str("zab")); - ASSERT(x + (int)'z' == Str("abz")); - ASSERT((int)'z' + x == Str("zab")); - Str xx = x; - Str bb = b; - Swap(b, x); - ASSERT(xx == b); - ASSERT(bb == x); - StrBuf sb; - sb.Cat("a"); - sb.Cat("1234", 3); - Str sx(sb); - ASSERT(sx == "a123"); - sb = bb; - sb[0] = 'a'; - bb = sb; - ASSERT(bb == "a2"); -} - template class TStr { Vector v; @@ -396,7 +284,6 @@ void TestBufferCat() CONSOLE_APP_MAIN { - ATest(); TestBufferCat(); TestBufferCat(); // ATest(); diff --git a/upptst/StringMethods/StringMethods.cpp b/upptst/StringMethods/StringMethods.cpp new file mode 100644 index 000000000..ece7d63fe --- /dev/null +++ b/upptst/StringMethods/StringMethods.cpp @@ -0,0 +1,174 @@ +#include + +using namespace Upp; + +template +void ATest() +{ + Str x = "0123456789012345"; + ASSERT(x.FindFirstOf("654") == 4); + ASSERT(x.FindFirstOf("46") == 4); + ASSERT(x.FindFirstOf("32", 10) == 12); + ASSERT(x.FindFirstOf("23", 10) == 12); + ASSERT(x.FindFirstOf(x) == 0); + ASSERT(x.Mid(3, 4) == Str("3456")); + ASSERT(x.Mid(3) == Str("3456789012345")); + ASSERT(x.Left(2) == Str("01")); + ASSERT(x.Right(2) == Str("45")); + ASSERT(x.Find('3') == 3); + ASSERT(x.ReverseFind('3') == 13); + ASSERT(x.GetLength() == 16); + ASSERT(x.Begin() + x.GetLength() == x.End()); + ASSERT(x[0] == '0'); + x.Insert(1, 'a'); + ASSERT(x == Str("0a123456789012345")); + x.Insert(2, ~Str("bcd"), 2); + ASSERT(x == Str("0abc123456789012345")); + x.Insert(1, ~Str("_")); + ASSERT(x == Str("0_abc123456789012345")); + x.Insert(1, x); + ASSERT(x == Str("00_abc123456789012345_abc123456789012345")); + x.Remove(1, 24); + ASSERT(x == Str("0123456789012345")); + Str b = "013"; + ASSERT(x < b); + ASSERT(x <= b); + ASSERT(x <= x); + ASSERT(x == x); + ASSERT(b > x); + ASSERT(b >= x); + ASSERT(x >= x); + ASSERT(x != b); + ASSERT(x.Compare(b) < 0); + ASSERT(b.Compare(x) > 0); + Str hh = "013"; + const chart *s = hh; + ASSERT(x < s); + ASSERT(x <= s); + ASSERT(x <= x); + ASSERT(x == x); + ASSERT(s > x); + ASSERT(s >= x); + ASSERT(x >= x); + ASSERT(x != s); + ASSERT(s != x); + ASSERT(s == b); + ASSERT(b == s); + ASSERT(x.Compare(s) < 0); + ASSERT(b.Compare(s) == 0); + ASSERT(!b.IsEqual(x)); + ASSERT(b.IsEqual(b)); + ASSERT(b.IsEqual(s)); + ASSERT(!x.IsEqual(b)); + b.Cat("ab"); + ASSERT(b == Str("013ab")); + b.Cat("ABCD", 2); + ASSERT(b == Str("013abAB")); + b.Cat('x', 3); + ASSERT(b == Str("013abABxxx")); + x.Cat(b); + ASSERT(x == Str("0123456789012345013abABxxx")); + b.Cat(x, 4); + ASSERT(b == Str("013abABxxx0123")); + b.Cat(~x, ~x + 3); + ASSERT(b == Str("013abABxxx0123012")); + b.Cat((chart2 *)s, 2); + ASSERT(b == Str("013abABxxx012301201")); + ASSERT(b.Find(2, ~Str("ABc"), 1) == 5); + ASSERT(b.Find(2, ~Str("ABc"), 6) < 0); + ASSERT(b.Find(~Str("AB"), 0) == 5); + ASSERT(b.Find("AB", 6) == -1); + ASSERT(b.Find(b) == 0); + ASSERT(b.Find(b, 1) < 0); + ASSERT(b.StartsWith("013")); + ASSERT(b.StartsWith(Str("013"))); + ASSERT(!b.StartsWith(~Str("012"))); + ASSERT(!b.StartsWith(Str("012"))); + ASSERT(b.StartsWith(~Str("012"), 2)); + ASSERT(b.EndsWith(~Str("201"))); + ASSERT(b.EndsWith(Str("201"))); + ASSERT(!b.EndsWith(~Str("202"))); + ASSERT(!b.EndsWith(Str("202"))); + x = "ab"; + b = "12"; + ASSERT(x + b == Str("ab12")); + ASSERT(x + "xx" == Str("abxx")); + ASSERT("xx" + x == Str("xxab")); + ASSERT(x + 'z' == Str("abz")); + ASSERT('z' + x == Str("zab")); + ASSERT(x + (int)'z' == Str("abz")); + ASSERT((int)'z' + x == Str("zab")); + Str xx = x; + Str bb = b; + Swap(b, x); + ASSERT(xx == b); + ASSERT(bb == x); + StrBuf sb; + sb.Cat(~Str("a")); + sb.Cat(~Str("1234"), 3); + Str sx(sb); + ASSERT(sx == ~Str("a123")); + sb = bb; + sb[0] = 'a'; + bb = sb; + ASSERT(bb == ~Str("a2")); + + x = Str("beginneedneneneedleneneeneedletheend."); + + ASSERT(x.Find(~Str("")) == 0); + ASSERT(x.Find(~Str("xxx")) == -1); + ASSERT(x.Find(~Str("begin")) == 0); + ASSERT(x.Find(~Str("begi")) == 0); + ASSERT(x.Find(~Str("beg")) == 0); + ASSERT(x.Find(~Str("be")) == 0); + ASSERT(x.Find(~Str("b")) == 0); + ASSERT(x.Find(~Str("begin"), 1) == -1); + ASSERT(x.Find(~Str("begi"), 1) == -1); + ASSERT(x.Find(~Str("beg"), 1) == -1); + ASSERT(x.Find(~Str("be"), 1) == -1); + ASSERT(x.Find(~Str("b"), 1) == -1); + ASSERT(x.Find(~Str("theend.")) == 30); + ASSERT(x.Find(~Str("end.")) == 33); + ASSERT(x.Find(~Str("nd.")) == 34); + ASSERT(x.Find(~Str("d.")) == 35); + ASSERT(x.Find(~Str(".")) == 36); + ASSERT(x.Find(~Str("theend."), 34) == -1); + ASSERT(x.Find(~Str("end."), 34) == -1); + ASSERT(x.Find(~Str("nd."), 36) == -1); + ASSERT(x.Find(~Str("d."), 36) == -1); + ASSERT(x.Find(~Str("."), 37) == -1); + ASSERT(x.Find(~Str("needle")) == 13); + ASSERT(x.Find(~Str("needle"), 20) == 24); + ASSERT(x.ReverseFind(~Str("")) == 37); + ASSERT(x.ReverseFind(~Str("xxx")) == -1); + ASSERT(x.ReverseFind(~Str("begin")) == 0); + ASSERT(x.ReverseFind(~Str("begi")) == 0); + ASSERT(x.ReverseFind(~Str("beg")) == 0); + ASSERT(x.ReverseFind(~Str("be")) == 0); + ASSERT(x.ReverseFind(~Str("b")) == 0); + ASSERT(x.ReverseFind(~Str("begin"), 1) == -1); + ASSERT(x.ReverseFind(~Str("begi"), 1) == -1); + ASSERT(x.ReverseFind(~Str("beg"), 1) == -1); + ASSERT(x.ReverseFind(~Str("be"), 1) == 0); + ASSERT(x.ReverseFind(~Str("b"), 1) == 0); + ASSERT(x.ReverseFind(~Str("theend.")) == 30); + ASSERT(x.ReverseFind(~Str("end.")) == 33); + ASSERT(x.ReverseFind(~Str("nd.")) == 34); + ASSERT(x.ReverseFind(~Str("d.")) == 35); + ASSERT(x.ReverseFind(~Str(".")) == 36); + ASSERT(x.ReverseFind(~Str("theend."), 34) == -1); + ASSERT(x.ReverseFind(~Str("end."), 34) == -1); + ASSERT(x.ReverseFind(~Str("nd."), 36) == 34); + ASSERT(x.ReverseFind(~Str("d."), 36) == 35); + ASSERT(x.ReverseFind(~Str("."), 37) == -1); + ASSERT(x.ReverseFind(~Str("needle")) == 24); + ASSERT(x.ReverseFind(~Str("needle"), 20) == 13); +} + +CONSOLE_APP_MAIN +{ + ATest(); + ASSERT((String().Cat() << 123) == "123"); + + ATest(); +} diff --git a/upptst/StringMethods/StringMethods.upp b/upptst/StringMethods/StringMethods.upp new file mode 100644 index 000000000..fc77a4cc5 --- /dev/null +++ b/upptst/StringMethods/StringMethods.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + StringMethods.cpp; + +mainconfig + "" = "SSE2"; + diff --git a/upptst/StringMethods/init b/upptst/StringMethods/init new file mode 100644 index 000000000..dcca6e163 --- /dev/null +++ b/upptst/StringMethods/init @@ -0,0 +1,4 @@ +#ifndef _StringMethods_icpp_init_stub +#define _StringMethods_icpp_init_stub +#include "Core/init" +#endif diff --git a/upptst/Xmlize/Xmlize.cpp b/upptst/Xmlize/Xmlize.cpp index 6c9bc2615..e73715325 100644 --- a/upptst/Xmlize/Xmlize.cpp +++ b/upptst/Xmlize/Xmlize.cpp @@ -112,7 +112,7 @@ CONSOLE_APP_MAIN TestV(Magenta()); TestDef(Magenta(), Blue()); -// TestDef(String("Hello"), String("Hi")); + TestDef(String("Hello"), String("Hi")); TestDef(3.14, 2.78); TestDef(123, 321);