// Ten przykład celowo łamie reguły dobrego stylu kodowania. #include "tst.h" #include #include #include #include void example1() { TST <> t1; auto t2 = t1 + "dog"; assert(t2.exist("dog")); std::cout << "End of example 1.\n"; } void example2() { TST<> tst; assert(!tst.exist("")); auto tst2 = tst + ""; assert(!tst2.exist("")); std::cout << "End of example 2.\n"; } void example3() { TST<> tst{"a"}; assert(tst.center().empty()); std::cout << "End of example 3.\n"; } void example4() { TST<> tst{ std::string{ "category" } }; assert((tst + std::string{ "functor" } + std::string{ "theory" }).prefix("theology") == "theo"); assert((tst + std::string{ "functor" } + std::string{ "theory" }).prefix("cftheology") == "c"); auto tst2{ tst + std::string{ "functor" } + std::string{ "theory" } }; auto tst3{ tst + std::string{ "functor" } + std::string{ "cftheory" } }; assert(tst2.prefix("cftheology") == "c"); assert(tst3.prefix("cftheology") == "cftheo"); assert(tst2.prefix("theology") == "theo"); assert(tst3.prefix("theology").empty()); std::cout << "End of example 4.\n"; } void example5() { TST t1; auto t2 = t1 + std::basic_string{1, 2, 3}; auto t3 = t2 + std::basic_string{1, 2}; assert(t2.value() == 1); assert(t2.center().value() == 2); assert(t2.center().center().value() == 3); assert(t3.value() == 1); assert(t3.center().value() == 2); assert(t3.center().center().value() == 3); assert(!t2.word()); assert(!t2.center().word()); assert(t2.center().center().word()); assert(!t3.word()); assert(t3.center().word()); assert(t3.center().center().word()); assert(t2.left().empty()); assert(!t2.center().empty()); assert(t2.right().empty()); assert(t2.center().left().empty()); assert(!t2.center().center().empty()); assert(t2.center().right().empty()); assert(t2.center().center().left().empty()); assert(t2.center().center().center().empty()); assert(t2.center().center().right().empty()); assert(t3.left().empty()); assert(!t3.center().empty()); assert(t3.right().empty()); assert(t3.center().left().empty()); assert(!t3.center().center().empty()); assert(t3.center().right().empty()); assert(t3.center().center().left().empty()); assert(t3.center().center().center().empty()); assert(t3.center().center().right().empty()); std::cout << "End of example 5.\n"; } int main() { example1(); example2(); example3(); example4(); example5(); }