CoreUtils/testing/zstring_test.cpp
2025-01-16 13:38:35 -08:00

130 lines
4.9 KiB
C++

#include <iostream>
#include "../ZString.h"
#include "../MString.h"
int main(int argc, char **argv) {
// Test floating point reader.
coreutils::ZString pi("3.14159");
double x = pi.asDouble();
std::cout << "pi: " << x << std::endl;
// Test comparison operations.
coreutils::ZString test1("else");
std::cout << (test1 != ".") << std::endl;
std::cout << (test1 == "") << std::endl;
// Test constructors.
coreutils::ZString test3("1659979856.747021214|barant@barant");
std::cout << test3 << std::endl;
// Test split operations.
coreutils::ZString test("11111:22222:33333:44444");
std::cout << "test pre-split: [" << test << "]." << std::endl;
test.split(":", 1);
std::cout << "test post-split: [" << test << "]." << std::endl;
std::cout << "test sections: [" << test.getList().size() << "]." << std::endl;
std::cout << test.getLength() << std::endl;
for(int ix = 0; ix < test.getList().size(); ++ix)
std::cout << ix << ":" << test[ix] << std::endl;
// Test substring operations.
coreutils::ZString test2("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
std::cout << "substring: [" << test2.substring(10) << "]" << std::endl;
// Test getContainer.
coreutils::ZString test4("test(this is a container (with a nesting))012345");
test4.getTokenExclude("(");
std::cout << "container: " << test4.getContainer() << std::endl;
std::cout << "rest: " << test4.unparsed() << std::endl;
// Test find();
coreutils::ZString testA("this is a test string for MX 250xyzabc");
std::cout << "find MX: " << testA.find("MX") << std::endl;
std::cout << "unparsed: " << testA.unparsed() << std::endl;
std::string testb = "this is a string";
coreutils::ZString testc = testb;
std::cout << testc << std::endl;
coreutils::MString testd = "this is an mstring";
testc = testd;
std::cout << testc << std::endl;
coreutils::ZString test5 = "this is a test of the Exclude tokenization without\n a line end.";
coreutils::ZString test6 = test5.getTokenExclude("\n");
std::cout << test6 << std::endl;
coreutils::ZString test7 = "this is a line\n \nthis is another line\n ";
std::cout << test7.lineIsWhitespace() << test7.goeol() << std::endl;
std::cout << test7.lineIsWhitespace() << test7.goeol() << std::endl;
std::cout << test7.lineIsWhitespace() << test7.goeol() << std::endl;
std::cout << test7.lineIsWhitespace() << test7.goeol() << std::endl;
coreutils::ZString test8("value1");
coreutils::ZString test9("value2");
std::cout << test8.compare(test9) << ":" << test9.compare(test8) << ":" << test8.compare(test8) << std::endl;
coreutils::ZString test10("value1");
coreutils::ZString test11("value1");
std::cout << test10.compare(test11) << ":" << test11.compare(test10) << std::endl;
coreutils::ZString test12("1");
coreutils::ZString test13("12");
std::cout << (test12 < test13) << ":" << (test13 < test12) << std::endl;
coreutils::ZString test14("25.5");
coreutils::ZString test15("xyx");
std::cout << test14.startsWithNumber() << ":" << test15.startsWithNumber() << std::endl;
coreutils::ZString test16("This is a test of substring");
std::cout << test16.substring(10) << std::endl;
std::cout << test16.substring(10, 4) << std::endl;
std::cout << test16.substring(0, 7) << std::endl;
std::cout << test16.substring(18, 20) << std::endl;
coreutils::ZString test17(" hello there ");
std::cout << "[" << test17.trim() << "]" << std::endl;
coreutils::ZString test18("this.test");
std::cout << "[" << test18.find(".") << "] " << test18.parsed() << ":" << test18.unparsed() << std::endl;
test18.reset();
std::cout << "[" << test18.find("x") << "] " << test18.parsed() << ":" << test18.unparsed() << std::endl;
coreutils::ZString test19("1,");
std::cout << test19.asDouble() << ":" << test19.unparsed() << std::endl;
std::cout << "Null assignment" << std::endl;
coreutils::ZString test20(NULL);
std::cout << "[" << test20 << "]" << std::endl;
std::cout << "Comparisons with null value: " << (test20 == "true") << std::endl;
coreutils::ZString test21("10.00000000");
std::cout << "Trailing Zeros: " << test21.removeTrailingZeros() << std::endl;
std::cout << " " << test21 << std::endl;
coreutils::ZString test22("This is a \\\"quoted\\\" string.\"");
std::cout << "quoted string: " << test22 << std::endl;
std::cout << "quoted string: " << test22.getTokenExclude("\"") << std::endl;
coreutils::ZString test23("2");
std::cout << "integer '2' is [" << test23 << "]" << std::endl;
coreutils::ZString test24("53524534");
std::cout << "integer '53524534' is [" << test24 << "]" << std::endl;
coreutils::ZString test25("-543");
std::cout << "integer '-543' is [" << test25 << "]" << std::endl;
coreutils::ZString test26(" this is a trim test ");
std::cout << "trimmed [" << test26.trim() << "]" << std::endl;
}