summaryrefslogtreecommitdiff
path: root/rttest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'rttest.cc')
-rw-r--r--rttest.cc223
1 files changed, 0 insertions, 223 deletions
diff --git a/rttest.cc b/rttest.cc
deleted file mode 100644
index b36a22b..0000000
--- a/rttest.cc
+++ /dev/null
@@ -1,223 +0,0 @@
-#include <cstdlib>
-#include <exception>
-#include <iostream>
-#include <source_location>
-#include <typeinfo>
-#include <zp/mem>
-#include <zp/mth>
-#include <zp/str>
-
-int main() {
- int unsigned num;
- int unsigned numerr = 0x0u;
-
- auto const tst = [&num](char const * const cmp) noexcept {
- ::std::cout << "\n\x1B[38;5;75mtesting\x1B[0m " << cmp << "\n\n";
-
- num = 0x0;
- };
-
- auto const cmp = [&num,&numerr]<typename ltyp,typename rtyp>(ltyp const & lvalref,rtyp const & rvalref,::std::source_location const srcloc = ::std::source_location::current()) {
- char const * const ltypnm = typeid (ltyp).name();
- char const * const rtypnm = typeid (rtyp).name();
-
- auto const getval = []<typename typ>(typ const & valref) {
- if constexpr (::zp::ischr<typ>::val) {return static_cast<::zp::i02m>(valref);}
- else if constexpr (::zp::isptr<typ>::val) {return reinterpret_cast<void *>(valref);}
- else {return valref;}
- };
-
- auto const lval = getval(lvalref);
- auto const rval = getval(rvalref);
-
- ::std::cout << " " << num++ << ". comparing " << ltypnm << " (" << lval << ") vs. " << rtypnm << " (" << rval << ")... ";
-
- if (lval != rval) {
- ::std::cout << "\x1B[38;5;161munequal\x1B[0m (at #" << srcloc.line() << ")\n";
- //throw ::std::exception {};
- ++numerr;
-
- return;
- }
-
- ::std::cout << "\x1B[38;5;77mequal\x1B[0m\n";
- };
-
- ::std::cout << "zp " << ::zp::ver << "." << ::zp::extver << ", run-time test\n";
-
- try {
- [&] {
- tst("vectors");
-
- ::zp::vec2<int> const lvec2 = {
- .x = +0x1,
- .y = -0x3,
- };
- ::zp::vec2<int> const rvec2 = {
- .x = +0x2,
- .y = -0x4,
- };
- cmp(::zp::dot(lvec2,rvec2),0xE);
-
- ::zp::vec3<int> const lvec3 = {
- .x = +0x1,
- .y = -0x3,
- .z = +0x5,
- };
- ::zp::vec3<int> const rvec3 = {
- .x = +0x2,
- .y = -0x4,
- .z = +0x6,
- };
- cmp(::zp::dot(lvec3,rvec3),0x2C);
-
- ::zp::vec4<int> const lvec4 = {
- .x = +0x1,
- .y = -0x3,
- .z = +0x5,
- .w = -0x7,
- };
- ::zp::vec4<int> const rvec4 = {
- .x = +0x2,
- .y = -0x4,
- .z = +0x6,
- .w = -0x8,
- };
- cmp(::zp::dot(lvec4,rvec4),0x64);
-
- auto const avec2 = ::zp::vadd(lvec2,rvec2);
- auto const svec2 = ::zp::vsub(lvec2,rvec2);
- cmp(avec2.x,+0x3);
- cmp(avec2.y,-0x7);
- cmp(svec2.x,-0x1);
- cmp(svec2.y,+0x1);
- }();
-
- [&] {
- tst("special numbers");
-
- cmp(zp_isnanf( zp_nanf), true);
- cmp(zp_isnand( zp_nand), true);
- cmp(zp_isnanld(zp_nanld),true);
- }();
-
- [&] {
- tst("memory sequences");
-
- ::zp::i04 filbuf;
-
- cmp(::zp::memfil(&filbuf,0xFFu,0x8u),reinterpret_cast<unsigned char *>(&filbuf)+0x8u);
- cmp(::zp::memfil(&filbuf,0x7Fu,0x4u),reinterpret_cast<unsigned char *>(&filbuf)+0x4u);
- cmp(::zp::memfil(&filbuf,0x3Fu,0x2u),reinterpret_cast<unsigned char *>(&filbuf)+0x2u);
- cmp(::zp::memfil(&filbuf,0x1Fu,0x1u),reinterpret_cast<unsigned char *>(&filbuf)+0x1u);
-
- cmp(filbuf,0xFFFFFFFF7F7F3F1Fu);
-
- ::zp::i04 cpybuf;
- ::zp::memcpy(&cpybuf,&filbuf,0x8u);
-
- cmp(cpybuf,filbuf);
-
- cmp(::zp::memsrh(&cpybuf,0x1Fu,0x8u),reinterpret_cast<unsigned char *>(&cpybuf));
- }();
-
- [&] {
- tst("strings");
-
- char str[] = "Hello there!";
- wchar_t wstr[] = L"Hello there!";
- char32_t str02[] = U"Hello there!";
-
- ::zp::sz const len = ::zp_strlen( str);
- ::zp::sz const wlen = ::zp_wstrlen( wstr);
- ::zp::sz const len02 = ::zp_utf32len(str02);
-
- cmp(len, 0xCu);
- cmp(wlen, 0xCu);
- cmp(len02,0xCu);
-
- auto const buf = new char[ len];
- auto const wbuf = new wchar_t[ wlen];
- auto const buf02 = new char32_t[len02];
-
- cmp(::zp_strcpy( buf, str), len);
- cmp(::zp_wstrcpy( wbuf, wstr), wlen);
- cmp(::zp_utf32cpy(buf02,str02),len02);
-
- delete[] buf;
- delete[] wbuf;
- delete[] buf02;
- }();
-
- [&] {
- tst("UTF-8");
-
- char32_t const src[] = U"\U0001F480";
-
- ::zp::sz const buf8len = ::zp_utf8enclen(src);
- cmp(buf8len,0x4u);
-
- char8_t * buf8 = new char8_t[buf8len+0x1u];
-
- ::zp_utf8enc(buf8,src);
-
- cmp(buf8[0x0u],0xF0u);
- cmp(buf8[0x1u],0x9Fu);
- cmp(buf8[0x2u],0x92u);
- cmp(buf8[0x3u],0x80u);
- cmp(buf8[0x4u],0x00u);
-
- ::zp::sz const buf02len = ::zp_utf8declen(buf8);
- cmp(buf02len,0x1u);
-
- char32_t * buf02 = new char32_t[buf02len+0x1u];
-
- ::zp_utf8dec(buf02,buf8);
-
- cmp(buf02[0x0u],0x1F480u);
- cmp(buf02[0x1u],0x0u);
-
- delete[] buf8;
- delete[] buf02;
- }();
-
- [&] {
- tst("UTF-16");
-
- char32_t const src[] = U"\U0001F480\u00F0";
-
- ::zp::sz const buf01len = ::zp_utf16enclen(src);
- cmp(buf01len,0x3u);
-
- char16_t * buf01 = new char16_t[buf01len+0x1u];
-
- ::zp_utf16enc(buf01,src);
-
- cmp(buf01[0x0u],0xD83Du);
- cmp(buf01[0x1u],0xDC80u);
- cmp(buf01[0x2u],0x00F0u);
- cmp(buf01[0x3u],0x0000u);
-
- ::zp::sz const buf02len = ::zp_utf16declen(buf01);
- cmp(buf02len,0x2u);
-
- char32_t * buf02 = new char32_t[buf02len+0x1u];
-
- ::zp_utf16dec(buf02,buf01);
-
- cmp(buf02[0x0u],0x1F480u);
- cmp(buf02[0x1u],0xF0u);
- cmp(buf02[0x2u],0x0u);
-
- delete[] buf01;
- delete[] buf02;
- }();
- }
- catch (::std::exception const &) {
- return EXIT_FAILURE;
- }
-
- ::std::cout << "\nDone \u2212 " << numerr << " error(s)\n";
-
- return EXIT_SUCCESS;
-}