|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- /*
- * Carla Tests
- * Copyright (C) 2013 Filipe Coelho <falktx@falktx.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * For a full copy of the GNU General Public License see the doc/GPL.txt file.
- */
-
- #include "CarlaString.hpp"
-
- int main()
- {
- CarlaString str;
-
- // empty
- assert(str.length() == 0);
- assert(str.length() == std::strlen(""));
- assert(str.isEmpty());
- assert(str.contains(""));
- assert(str.contains("\0"));
- assert(! str.isNotEmpty());
- assert(! str.contains(" "));
- assert(! str.isDigit(0));
-
- // single number
- str = "5";
- assert(str.length() == 1);
- assert(str.length() == std::strlen("5"));
- assert(str.isNotEmpty());
- assert(str.contains(""));
- assert(str.contains("5"));
- assert(str.isDigit(0));
- assert(! str.isEmpty());
- assert(! str.contains("6"));
- assert(! str.isDigit(1));
-
- // single number, using constructor
- str = CarlaString(5);
- assert(str.length() == 1);
- assert(str.length() == std::strlen("5"));
- assert(str.isNotEmpty());
- assert(str.contains(""));
- assert(str.contains("5"));
- assert(str.isDigit(0));
- assert(! str.isEmpty());
- assert(! str.contains("6"));
- assert(! str.isDigit(1));
-
- // decimal number
- str = CarlaString(51);
- assert(str.length() == 2);
- assert(str.length() == std::strlen("51"));
- assert(str.isNotEmpty());
- assert(str.contains(""));
- assert(str.contains("1"));
- assert(str.contains("51"));
- assert(str.isDigit(0));
- assert(str.isDigit(1));
- assert(! str.isEmpty());
- assert(! str.contains("6"));
- assert(! str.isDigit(2));
- assert(! str.isDigit(-1));
-
- // negative number
- str = CarlaString(-51);
- assert(str.length() == 3);
- assert(str.length() == std::strlen("-51"));
- assert(str.isNotEmpty());
- assert(str.contains(""));
- assert(str.contains("-5"));
- assert(str.contains("51"));
- assert(str.isDigit(1));
- assert(str.isDigit(2));
- assert(! str.isEmpty());
- assert(! str.contains("6"));
- assert(! str.isDigit(0));
- assert(! str.isDigit(-1));
-
- // small operations
- str += "ah";
- assert(str.length() == 5);
- assert(str.length() == std::strlen("-51ah"));
- assert(str.contains("-51ah"));
- assert(! str.isDigit(3));
-
- // hexacimal number
- unsigned int n = 0x91;
- str += CarlaString(n, true);
- assert(str.length() == 9);
- assert(str.length() == std::strlen("-51ah0x91"));
- assert(str.contains("-51ah0x91"));
- assert(! str.isDigit(6));
-
- // float number
- str += CarlaString(0.0102f);
- assert(str.length() == 17);
- assert(str.length() == std::strlen("-51ah0x910.010200"));
- assert(str.contains("-51ah0x91"));
- assert(! str.isDigit(6));
-
- // double number
- str += CarlaString(7.9642);
- assert(str.length() == 23);
- assert(str.length() == std::strlen("-51ah0x910.0102007.9642"));
- assert(str.contains("7.9642"));
-
- // replace
- str.replace('0', 'k');
- str.replace('k', 'O');
- str.replace('O', '0');
- str.replace('0', '\0'); // shouldn't do anything
-
- // truncate
- str.truncate(11);
- assert(str.length() == 11);
- assert(str.length() == std::strlen("-51ah0x910."));
-
- // basic
- str.toBasic();
- assert(str.length() == 11);
- assert(str == "_51ah0x910_");
-
- // upper
- str.toUpper();
- assert(str.length() == 11);
- assert(str == "_51AH0X910_");
-
- // lower
- str.toLower();
- assert(str.length() == 11);
- assert(str == "_51ah0x910_");
-
- // random stuff
- CarlaString str1(1.23);
- str1 += "_ ?";
-
- CarlaString str2("test1");
- str2 = "test2";
- str2 += ".0";
-
- CarlaString str3("1.23_ ?test2.0 final");
-
- CarlaString str4 = "" + str1 + str2 + " final";
-
- assert(str3 == "1.23_ ?test2.0 final");
- assert(str3 == str4);
- assert(str3.length() == str4.length());
- assert(str3.length() == std::strlen("1.23_ ?test2.0 final"));
-
- CarlaString str5 = "ola " + str + " " + CarlaString(6);
- assert(str5 == "ola _51ah0x910_ 6");
- assert(str5.length() == std::strlen("ola _51ah0x910_ 6"));
-
- printf("FINAL: \"%s\"\n", (const char*)str5);
-
- // clear
- str.clear();
- assert(str.length() == 0);
- assert(str.length() == std::strlen(""));
- assert(str == "");
-
- return 0;
- }
|