Files
CoreLibs-Composer-All/build/testdox.html
T

1999 lines
198 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Test Documentation</title>
<style>
body {
text-rendering: optimizeLegibility;
font-family: Source SansSerif Pro, Arial, sans-serif;
font-variant-ligatures: common-ligatures;
font-kerning: normal;
margin-left: 2rem;
background-color: #fff;
color: #000;
}
body > ul > li {
font-size: larger;
}
h2 {
font-size: larger;
text-decoration-line: underline;
text-decoration-thickness: 2px;
margin: 0;
padding: 0.5rem 0;
}
ul {
list-style: none;
margin: 0 0 2rem;
padding: 0 0 0 1rem;
text-indent: -1rem;
}
.success:before {
color: #4e9a06;
content: '✓';
padding-right: 0.5rem;
}
.defect {
color: #a40000;
}
.defect:before {
color: #a40000;
content: '✗';
padding-right: 0.5rem;
}
</style>
</head>
<body>
<h2>AAASetupData\AAASetupDataTest just setup BASE</h2>
<ul>
<li class="success">Just setup BASE</li>
</ul>
<h2>\CoreLibs\ACL\Login method tests</h2>
<ul>
<li class="success">ACL\Login Class tests [load, no login]</li>
<li class="success">ACL\Login Class tests [load, no login, ajax flag]</li>
<li class="success">ACL\Login Class tests [load, no login, ajax globals]</li>
<li class="success">ACL\Login Class tests [load, session eucuuid set only, php error]</li>
<li class="success">ACL\Login Class tests [load, session eucuuid set, all set]</li>
<li class="success">ACL\Login Class tests [login: failed: all missing]</li>
<li class="success">ACL\Login Class tests [login: failed: missing username]</li>
<li class="success">ACL\Login Class tests [login: failed: missing password]</li>
<li class="success">ACL\Login Class tests [login: failed: user not found]</li>
<li class="success">ACL\Login Class tests [login: failed: invalid password]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: but deleted]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: but not enabled]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: but locked]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: get locked, strict]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: but locked period (until:on)]</li>
<li class="success">ACL\Login Class tests [login: ok, but locked period (until:off)]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed: but locked period (after:on)]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, but locked period (until:on, after:on)]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, but loginUserId locked]</li>
<li class="success">ACL\Login Class tests [login: ok]</li>
<li class="success">ACL\Login Class tests [login: ok, _GET loginUserId]</li>
<li class="success">ACL\Login Class tests [login: ok, _POST loginUserId]</li>
<li class="success">ACL\Login Class tests [login: ok, illegal chars in _GET loginUserId]</li>
<li class="success">ACL\Login Class tests [login: not matching _GET loginUserId]</li>
<li class="success">ACL\Login Class tests [login: ok, _GET loginUserId AND login post user data]</li>
<li class="success">ACL\Login Class tests [login: ok, bad _GET loginUserId AND good login post user data]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, but revalidate trigger, _GET loginUserId]</li>
<li class="success">ACL\Login Class tests [login: ok, revalidate set (outside), _GET loginUserId]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, _GET loginUserId, but outside valid (from:on) ]</li>
<li class="success">ACL\Login Class tests [login: ok, _GET loginUserId, but outside valid (from:off) ]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, _GET loginUserId, but outside valid (until:on) ]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed:, _GET loginUserId, but outside valid (from:on,until:on) ]</li>
<li class="success">ACL\Login Class tests [login: ok -> failed -> ok:, _GET loginUserId, but must revalidate, normal login, _GET loginUserId]</li>
<li class="success">ACL\Login list if NULL and NULL exepcted level is NULL [null, get full list]</li>
<li class="success">ACL\Login list if 20 and read exepcted level is 20 [valid, search]</li>
<li class="success">ACL\Login list if 12 and foo exepcted level is false [invalid search]</li>
<li class="success">ACL\Login password min length set 12 is true and matches 12 [set new length]</li>
<li class="success">ACL\Login password min length set 5 is false and matches 9 [set new length, too short]</li>
<li class="success">ACL\Login password min length set 500 is false and matches 9 [set new length, too long]</li>
<li class="success">ACL\Login get password length min [min]</li>
<li class="success">ACL\Login get password length lower [lower]</li>
<li class="success">ACL\Login get password length max [max]</li>
<li class="success">ACL\Login get password length upper [upper]</li>
<li class="success">ACL\Login get password length minimum_length [minimum_length]</li>
<li class="success">ACL\Login get password length min_length [min_length]</li>
<li class="success">ACL\Login get password length length [length]</li>
<li class="success">ACL\Login failed login set/get 10 is true and matches 10 [set valid max failed login]</li>
<li class="success">ACL\Login failed login set/get -1 is true and matches -1 [set valid unlimted]</li>
<li class="success">ACL\Login failed login set/get 0 is false and matches -1 [set invalid 0]</li>
<li class="success">ACL\Login failed login set/get -5 is false and matches -1 [set invalid negative]</li>
</ul>
<h2>\CoreLibs\Admin\Backend method tests</h2>
<ul>
<li class="defect">Admin\Backend Class tests</li>
</ul>
<h2>\CoreLibs\Admin\EditPage method tests</h2>
<ul>
<li class="defect">Admin\EditPage Class tests</li>
</ul>
<h2>\CoreLibs\Check\Colors method tests</h2>
<ul>
<li class="success">validateColor #ab12cd with flags NULL be true [valid hex rgb, flag ALL (default)]</li>
<li class="success">validateColor #ab12cd with flags 63 be true [valid hex rgb, flag ALL]</li>
<li class="success">validateColor #ab12cd with flags 1 be true [valid hex rgb, flag HEX_RGB]</li>
<li class="success">validateColor #ab12cd with flags 4 be false [valid hex rgb, wrong flag]</li>
<li class="success">validateColor #ab12zz with flags NULL be false [invalid hex rgb A]</li>
<li class="success">validateColor #ZyQfo with flags NULL be false [invalid hex rgb B]</li>
<li class="success">validateColor #AB12cd with flags NULL be true [valid hex rgb, alt A]</li>
<li class="success">validateColor #ab12cd12 with flags NULL be true [valid hex rgb alpha, flag ALL (default)]</li>
<li class="success">validateColor #ab12cd12 with flags 63 be true [valid hex rgb alpha, flag ALL]</li>
<li class="success">validateColor #ab12cd12 with flags 2 be true [valid hex rgb alpha, flag HEX_RGBA]</li>
<li class="success">validateColor #ab12cd12 with flags 4 be false [valid hex rgb alpha, wrong flag]</li>
<li class="success">validateColor #ab12dd1 with flags NULL be false [invalid hex rgb alpha A]</li>
<li class="success">validateColor #ab12ddzz with flags NULL be false [invalid hex rgb alpha B]</li>
<li class="success">validateColor #ab12cdEE with flags NULL be true [valid hex rgb alpha, alt A]</li>
<li class="success">validateColor rgb(255, 10, 20) with flags NULL be true [valid rgb, flag ALL (default)]</li>
<li class="success">validateColor rgb(255, 10, 20) with flags 63 be true [valid rgb, flag ALL]</li>
<li class="success">validateColor rgb(255, 10, 20) with flags 4 be true [valid rgb, flag RGB]</li>
<li class="success">validateColor rgb(255, 10, 20) with flags 1 be false [valid rgb, wrong flag]</li>
<li class="success">validateColor rgb(356, 10, 20) with flags NULL be false [invalid rgb A]</li>
<li class="success">validateColor rgb(100%, 10%, 20%) with flags NULL be true [valid rgb, alt A (percent)]</li>
<li class="success">validateColor rgb(100%, 10, 40) with flags NULL be true [valid rgb, alt B (percent, mix)]</li>
<li class="success">validateColor rgba(255, 10, 20, 0.5) with flags NULL be true [valid rgba, flag ALL (default)]</li>
<li class="success">validateColor rgba(255, 10, 20, 0.5) with flags 63 be true [valid rgba, flag ALL]</li>
<li class="success">validateColor rgba(255, 10, 20, 0.5) with flags 8 be true [valid rgba, flag RGB]</li>
<li class="success">validateColor rgba(255, 10, 20, 0.5) with flags 1 be false [valid rgba, wrong flag]</li>
<li class="success">validateColor rgba(356, 10, 20, 0.5) with flags NULL be false [invalid rgba A]</li>
<li class="success">validateColor rgba(100%, 10%, 20%, 0.5) with flags NULL be true [valid rgba, alt A (percent)]</li>
<li class="success">validateColor rgba(100%, 10, 40, 0.5) with flags NULL be true [valid rgba, alt B (percent, mix)]</li>
<li class="success">validateColor rgba(100%, 10%, 20%, 50%) with flags NULL be true [valid rgba, alt C (percent transparent)]</li>
<li class="success">validateColor hsl(100, 50%, 60%) with flags NULL be true [valid hsl, flag ALL (default)]</li>
<li class="success">validateColor hsl(100, 50%, 60%) with flags 63 be true [valid hsl, flag ALL]</li>
<li class="success">validateColor hsl(100, 50%, 60%) with flags 16 be true [valid hsl, flag RGB]</li>
<li class="success">validateColor hsl(100, 50%, 60%) with flags 1 be false [valid hsl, wrong flag]</li>
<li class="success">validateColor hsl(500, 50%, 60%) with flags NULL be false [invalid hsl A]</li>
<li class="success">validateColor hsl(100, 50.5%, 60.5%) with flags NULL be true [valid hsl, alt A]</li>
<li class="success">validateColor hsla(100, 50%, 60%, 0.5) with flags NULL be true [valid hsla, flag ALL (default)]</li>
<li class="success">validateColor hsla(100, 50%, 60%, 0.5) with flags 63 be true [valid hsla, flag ALL]</li>
<li class="success">validateColor hsla(100, 50%, 60%, 0.5) with flags 32 be true [valid hsla, flag RGB]</li>
<li class="success">validateColor hsla(100, 50%, 60%, 0.5) with flags 1 be false [valid hsla, wrong flag]</li>
<li class="success">validateColor hsla(500, 50%, 60%, 0.5) with flags NULL be false [invalid hsla A]</li>
<li class="success">validateColor hsla(100, 50.5%, 60.5%, 50%) with flags NULL be true [valid hsla, alt A (percent alpha]</li>
<li class="success">validateColor rgb(100%, 10%, 20%) with flags 12 be true [valid rgb, flag RGB|RGBA]</li>
<li class="success">validateColor invalid string with flags NULL be false [invalid string A]</li>
<li class="success">validateColor (hsla(100, 100, 100)) with flags NULL be false [invalid string B]</li>
<li class="success">validateColor hsla(100, 100, 100 with flags NULL be false [invalid string C]</li>
<li class="success">Check Exception throw for 99</li>
</ul>
<h2>\CoreLibs\Check\Email method tests</h2>
<ul>
<li class="success">getEmailRegex -1 will be ^[A-Za-z0-9!#$%&'*+\-\/=?^_`{|}~][A-Za-z0-9!#$%:\(\)&'*+\-\/=?^_`{|}~\.]{0,63}@(?!-)[A-Za-z0-9-]{1,63}(?<!-)(?:\.[A-Za-z0-9-]{1,63}(?<!-))*\.[a-zA-Z]{2,6}$ [get email regex invalid -1, will be 0]</li>
<li class="success">getEmailRegex 10 will be ^[A-Za-z0-9!#$%&'*+\-\/=?^_`{|}~][A-Za-z0-9!#$%:\(\)&'*+\-\/=?^_`{|}~\.]{0,63}@(?!-)[A-Za-z0-9-]{1,63}(?<!-)(?:\.[A-Za-z0-9-]{1,63}(?<!-))*\.[a-zA-Z]{2,6}$ [get email regex invalid 10, will be 0]</li>
<li class="success">getEmailRegex 1 will be @(.*)@(.*) [get email regex valid 1, will be 1]</li>
<li class="success">checkEmail test@test.com will be true [valid email]</li>
<li class="success">checkEmail '' will be false [invalid empty email]</li>
<li class="success">checkEmail -@- will be false [invalid email]</li>
<li class="success">checkEmail .test@test.com will be false [invalid email leading dot]</li>
<li class="success">checkEmail test@t_est.com will be false [invalid email invalid domain]</li>
<li class="success">checkEmail test@@test.com will be false [invalid email double @]</li>
<li class="success">checkEmail test@test..com will be false [invalid email double dot]</li>
<li class="success">checkEmail test@test. will be false [invalid email end with dot]</li>
<li class="success">checkEmail test@test.j will be false [invalid email bad top level]</li>
<li class="success">checkEmail test@@test..com will be false [invalid email double @ and double dot]</li>
<li class="success">checkEmailFull test@test.com will be array [valid email]</li>
<li class="success">checkEmailFull '' will be array [invalid empty email]</li>
<li class="success">checkEmailFull -@- will be array [invalid email]</li>
<li class="success">checkEmailFull .test@test.com will be array [invalid email leading dot]</li>
<li class="success">checkEmailFull test@t_est.com will be array [invalid email invalid domain]</li>
<li class="success">checkEmailFull test@@test.com will be array [invalid email double @]</li>
<li class="success">checkEmailFull test@test..com will be array [invalid email double dot]</li>
<li class="success">checkEmailFull test@test. will be array [invalid email end with dot]</li>
<li class="success">checkEmailFull test@test.j will be array [invalid email bad top level]</li>
<li class="success">checkEmailFull test@@test..com will be array [invalid email double @ and double dot]</li>
<li class="success">getEmailRegexErrorMessage 0 will be array [error 0 will return general]</li>
<li class="success">getEmailRegexErrorMessage 1 will be array [error 1 will return double @ error]</li>
<li class="success">getEmailRegexErrorMessage 2 will be array [error 2 will be invalid before @]</li>
<li class="success">getEmailRegexErrorMessage 3 will be array [error 3 will be invalid domain and top level]</li>
<li class="success">getEmailRegexErrorMessage 4 will be array [error 4 will be invalid domain]</li>
<li class="success">getEmailRegexErrorMessage 5 will be array [error 5 will be invalid domain top level only]</li>
<li class="success">getEmailRegexErrorMessage 6 will be array [error 6 will be domain double dot]</li>
<li class="success">getEmailRegexErrorMessage 7 will be array [error 7 will domain ends with dot]</li>
<li class="success">getEmailType test@test.com will be normal pc_html [email test@test.com is valid and matches normal pc_html]</li>
<li class="success">getEmailType test@docomo.ne.jp will be normal keitai_docomo [email test@docomo.ne.jp is valid and matches normal keitai_docomo]</li>
<li class="success">getEmailType test@softbank.ne.jp will be normal keitai_softbank [email test@softbank.ne.jp is valid and matches normal keitai_softbank]</li>
<li class="success">getEmailType test@i.softbank.ne.jp will be normal smartphone_softbank_iphone [email test@i.softbank.ne.jp is valid and matches normal smartphone_softbank_iphone]</li>
<li class="success">getEmailType '' will be normal invalid [email is empty and not valid normal]</li>
<li class="success">getEmailType test@test.com will be short pc [email test@test.com is valid and matches short pc]</li>
<li class="success">getEmailType test@docomo.ne.jp will be short docomo [email test@docomo.ne.jp is valid and matches short docomo]</li>
<li class="success">getEmailType test@softbank.ne.jp will be short softbank [email test@softbank.ne.jp is valid and matches short softbank]</li>
<li class="success">getEmailType test@i.softbank.ne.jp will be short iphone [email test@i.softbank.ne.jp is valid and matches short iphone]</li>
<li class="success">getEmailType '' will be short invalid [email is empty and not valid short]</li>
<li class="success">getShortEmailType keitai_docomo will be docomo [keitai_docomo matches to docomo]</li>
<li class="success">getShortEmailType keitai_kddi_ezweb will be kddi [keitai_kddi_ezweb matches to kddi]</li>
<li class="success">getShortEmailType keitai_kddi will be kddi [keitai_kddi matches to kddi]</li>
<li class="success">getShortEmailType keitai_kddi_tu-ka will be kddi [keitai_kddi_tu-ka matches to kddi]</li>
<li class="success">getShortEmailType keitai_kddi_sky will be kddi [keitai_kddi_sky matches to kddi]</li>
<li class="success">getShortEmailType keitai_softbank will be softbank [keitai_softbank matches to softbank]</li>
<li class="success">getShortEmailType smartphone_softbank_iphone will be iphone [smartphone_softbank_iphone matches to iphone]</li>
<li class="success">getShortEmailType keitai_softbank_disney will be softbank [keitai_softbank_disney matches to softbank]</li>
<li class="success">getShortEmailType keitai_softbank_vodafone will be softbank [keitai_softbank_vodafone matches to softbank]</li>
<li class="success">getShortEmailType keitai_softbank_j-phone will be softbank [keitai_softbank_j-phone matches to softbank]</li>
<li class="success">getShortEmailType keitai_willcom will be willcom [keitai_willcom matches to willcom]</li>
<li class="success">getShortEmailType keitai_willcom_pdx will be willcom [keitai_willcom_pdx matches to willcom]</li>
<li class="success">getShortEmailType keitai_willcom_bandai will be willcom [keitai_willcom_bandai matches to willcom]</li>
<li class="success">getShortEmailType keitai_willcom_pipopa will be willcom [keitai_willcom_pipopa matches to willcom]</li>
<li class="success">getShortEmailType keitai_willcom_ymobile will be willcom [keitai_willcom_ymobile matches to willcom]</li>
<li class="success">getShortEmailType keitai_willcom_emnet will be willcom [keitai_willcom_emnet matches to willcom]</li>
<li class="success">getShortEmailType pc_html will be pc [pc_html matches to pc]</li>
<li class="success">getShortEmailType invalid will be false [Not found will be bool false]</li>
</ul>
<h2>\CoreLibs\Check\Encoding method tests</h2>
<ul>
<li class="success">check encoding convert from UTF-8 to SJIS [valid test UTF-8 to SJIS (default)]</li>
<li class="success">check encoding convert from UTF-8 to SJIS [invalid test UTF-8 to SJIS (dots as code point)]</li>
<li class="success">check encoding convert from UTF-8 to SJIS [invalid test UTF-8 to SJIS (dots as string)]</li>
<li class="success">check encoding convert from UTF-8 to SJIS [invalid test UTF-8 to SJIS (none)]</li>
<li class="success">check encoding convert from UTF-8 to SJIS [invalid test UTF-8 to SJIS (long)]</li>
<li class="success">check encoding convert from UTF-8 to SJIS [invalid test UTF-8 to SJIS (entity)]</li>
</ul>
<h2>\CoreLibs\Check\File method tests</h2>
<ul>
<li class="success">getFilenameEnding filename.txt must be extension txt [filename.txt must be extension txt]</li>
<li class="success">getFilenameEnding filename.csv must be extension csv [filename.csv must be extension csv]</li>
<li class="success">getFilenameEnding filename.tsv must be extension tsv [filename.tsv must be extension tsv]</li>
<li class="success">getFilenameEnding file_does_not_exits must be extension '' [file_does_not_exits must be extension ]</li>
<li class="success">getLinesFromFile filename.txt must have 5 lines [filename.txt must have 5 lines]</li>
<li class="success">getLinesFromFile filename.csv must have 15 lines [filename.csv must have 15 lines]</li>
<li class="success">getLinesFromFile filename.tsv must have 0 lines [filename.tsv must have 0 lines]</li>
<li class="success">getLinesFromFile file_does_not_exits must have -1 lines [file_does_not_exits must have -1 lines]</li>
<li class="success">getMimeType filename.txt must be mime type text/plain [filename.txt must be mime type text/plain]</li>
<li class="success">getMimeType filename.csv must be mime type text/csv [filename.csv must be mime type text/csv]</li>
<li class="success">getMimeType filename.tsv must be mime type text/plain [filename.tsv must be mime type text/plain]</li>
<li class="success">getMimeType file_does_not_exits must be mime type '' [file_does_not_exits must be mime type ]</li>
</ul>
<h2>\CoreLibs\Check\PHPVersion method tests</h2>
<ul>
<li class="success">checkPHPVersion 7 and '' will be true [min 7]</li>
<li class="success">checkPHPVersion 7.4 and '' will be true [min 7.4]</li>
<li class="success">checkPHPVersion 7.4.1 and '' will be true [min 7.4.1]</li>
<li class="success">checkPHPVersion 10 and '' will be false [min 10]</li>
<li class="success">checkPHPVersion 10.0 and '' will be false [min 10.0]</li>
<li class="success">checkPHPVersion 10.0.0 and '' will be false [min 10.0.0]</li>
<li class="success">checkPHPVersion 7 and 10 will be true [min 7/max 10]</li>
<li class="success">checkPHPVersion 7 and 10.0 will be true [min 7/max 10.0]</li>
<li class="success">checkPHPVersion 7 and 10.0.0 will be true [min 7/max 10.0.0]</li>
<li class="success">checkPHPVersion 5 and 7 will be false [min 5/max 7]</li>
<li class="success">checkPHPVersion 5 and 7.4 will be false [min 5/max 7.4]</li>
<li class="success">checkPHPVersion 5 and 7.4.1 will be false [min 5/max 7.4.1]</li>
<li class="success">checkPHPVersion '' and 7 will be false [max 7]</li>
<li class="success">checkPHPVersion '' and 7.4 will be false [max 7.4]</li>
<li class="success">checkPHPVersion '' and 7.4.1 will be false [max 7.4.1]</li>
<li class="success">checkPHPVersion '' and 10 will be true [max 10]</li>
<li class="success">checkPHPVersion '' and 10.0 will be true [max 10.0]</li>
<li class="success">checkPHPVersion '' and 10.0.0 will be true [max 10.0.0]</li>
</ul>
<h2>Core Libs Combined Array Handler Find Arrays Missing Key (tests\CoreLibsCombinedArrayHandlerFindArraysMissingKey)</h2>
<ul>
<li class="success">Find missing single key with value search</li>
<li class="success">Find missing single key with key value search</li>
<li class="success">Find missing multiple keys</li>
<li class="success">Find missing key in nested arrays</li>
<li class="success">No missing keys</li>
<li class="success">Search value not found</li>
<li class="success">Different search value types</li>
<li class="success">Empty array</li>
<li class="success">Mixed array types</li>
<li class="success">Deep nesting path building</li>
<li class="success">Custom path separator</li>
<li class="success">Default path separator</li>
<li class="success">Path separator does not affect search logic</li>
<li class="success">Strict type checking</li>
</ul>
<h2>Core Libs Combined Array Handler Ksort Array (tests\CoreLibsCombinedArrayHandlerKsortArray)</h2>
<ul>
<li class="success">Ksort array basic ascending</li>
<li class="success">Ksort array descending</li>
<li class="success">Ksort array case insensitive ascending</li>
<li class="success">Ksort array case insensitive descending</li>
<li class="success">Ksort array case sensitivity comparison</li>
<li class="success">Ksort array numeric string keys</li>
<li class="success">Ksort array special characters</li>
<li class="success">Ksort array empty</li>
<li class="success">Ksort array single element</li>
<li class="success">Ksort array does not modify original</li>
<li class="success">Ksort array mixed value types</li>
<li class="success">Ksort array all parameter combinations</li>
<li class="success">Ksort array with data provider with data set "default"</li>
<li class="success">Ksort array with data provider with data set "reverse"</li>
<li class="success">Ksort array with data provider with data set "lowercase"</li>
<li class="success">Ksort array with data provider with data set "lowercase_reverse"</li>
</ul>
<h2>Core Libs Combined Array Handler Select Array From Option (tests\CoreLibsCombinedArrayHandlerSelectArrayFromOption)</h2>
<ul>
<li class="success">Empty array returns empty</li>
<li class="success">Basic string search</li>
<li class="success">Basic integer search</li>
<li class="success">Basic float search</li>
<li class="success">Basic boolean search</li>
<li class="success">Strict comparison</li>
<li class="success">Case insensitive search</li>
<li class="success">Case sensitive search</li>
<li class="success">Recursive search with flat result</li>
<li class="success">Recursive search with nested result</li>
<li class="success">Recursive search deep nesting</li>
<li class="success">Custom flat separator</li>
<li class="success">Non recursive search</li>
<li class="success">No matches found</li>
<li class="success">Missing lookup key</li>
<li class="success">Combined strict and case insensitive</li>
<li class="success">Boolean with case insensitive</li>
<li class="success">Array with numeric keys</li>
<li class="success">Recursive with mixed key types</li>
<li class="success">All parameters combined</li>
</ul>
<h2>Core Libs Combined Array Handler Sort Array (tests\CoreLibsCombinedArrayHandlerSortArray)</h2>
<ul>
<li class="success">Basic ascending sort</li>
<li class="success">Basic descending sort</li>
<li class="success">Ascending sort with key maintenance</li>
<li class="success">Descending sort with key maintenance</li>
<li class="success">String lower case sort</li>
<li class="success">String lower case sort reverse</li>
<li class="success">String lower case sort with keys</li>
<li class="success">String lower case sort reverse with keys</li>
<li class="success">Numeric string sorting</li>
<li class="success">Natural string sorting</li>
<li class="success">Empty array</li>
<li class="success">Single element array</li>
<li class="success">Array with null values</li>
<li class="success">Mixed data types</li>
<li class="success">Original array not modified</li>
<li class="success">Case sensitivity without lowercase</li>
<li class="success">All parameters combination</li>
<li class="success">Floating point numbers</li>
<li class="success">Duplicate values with key maintenance</li>
<li class="success">Sort parameter combinations with data set "basic_ascending"</li>
<li class="success">Sort parameter combinations with data set "basic_descending"</li>
<li class="success">Sort parameter combinations with data set "lowercase_ascending"</li>
<li class="success">Sort parameter combinations with data set "lowercase_descending"</li>
</ul>
<h2>\CoreLibs\Combined\ArrayHandler method tests</h2>
<ul>
<li class="success">arraySearchRecursive bar (key NULL) in array and will be array [find value]</li>
<li class="success">arraySearchRecursive bar (key nested) in array and will be array [find value with key]</li>
<li class="success">arraySearchRecursive not exists (key NULL) in array and will be array [not existing value]</li>
<li class="success">arraySearchRecursive 4 (key NULL) in array and will be array [find value int]</li>
<li class="success">arraySearchRecursive 4 (key NULL) in array and will be array [find value int as string]</li>
<li class="success">arraySearchRecursive 4 (key foobar) in array and will be array [find value int as string with key]</li>
<li class="success">arraySearchRecursive d (key NULL) in array and will be array [first level value]</li>
<li class="success">arraySearchRecursive foobar (key NULL) in array and will be array [find value, return int key]</li>
<li class="success">arraySearchRecursiveAll bar (key NULL) in array and will be array (old: true) [find value]</li>
<li class="success">arraySearchRecursiveAll bar (key NULL) in array and will be array (old: false) [find value, new type]</li>
<li class="success">arraySearchRecursiveAll bar (key nested) in array and will be array (old: true) [find value with key]</li>
<li class="success">arraySearchRecursiveAll not exists (key NULL) in array and will be array (old: true) [not existing value]</li>
<li class="success">arraySearchRecursiveAll not exists (key NULL) in array and will be array (old: false) [not existing value, new type]</li>
<li class="success">arraySearchSimple array searched with key: c / value: foo (strict: $flag) will be true [key/value exist]</li>
<li class="success">arraySearchSimple array searched with key: same / value: same (strict: $flag) will be true [key/value exists twice]</li>
<li class="success">arraySearchSimple array searched with key: not exists / value: not exists (strict: $flag) will be false [key/value not found]</li>
<li class="success">arraySearchSimple array searched with key: b / value: not exists (strict: $flag) will be false [key exists, value not]</li>
<li class="success">arraySearchSimple array searched with key: not exists / value: bar (strict: $flag) will be false [key not, value exists]</li>
<li class="success">arraySearchSimple array searched with key: 0 / value: d (strict: $flag) will be true [numeric key, value exists]</li>
<li class="success">arraySearchSimple array searched with key: 0 / value: d (strict: $flag) will be true [numeric key as string, value exists]</li>
<li class="success">arraySearchSimple array searched with key: 0 / value: d (strict: $flag) will be false [numeric key as string, value exists, strinct]</li>
<li class="success">arraySearchSimple array searched with key: foobar / value: 4 (strict: $flag) will be true [key exists, value numeric]</li>
<li class="success">arraySearchSimple array searched with key: foobar / value: 4 (strict: $flag) will be true [key exists, value numeric as string]</li>
<li class="success">arraySearchSimple array searched with key: foobar / value: 4 (strict: $flag) will be false [key exists, value numeric as string, strict]</li>
<li class="success">arraySearchSimple array searched with key: true / value: true (strict: $flag) will be true [key exists, value bool]</li>
<li class="success">arraySearchSimple array searched with key: true / value: true (strict: $flag) will be true [key exists, value bool as string]</li>
<li class="success">arraySearchSimple array searched with key: true / value: true (strict: $flag) will be false [key exists, value bool as string, strict]</li>
<li class="success">arraySearchSimple array searched with key: more / value: array (strict: $flag) will be true [array type, both exist]</li>
<li class="success">arraySearchSimple array searched with key: more / value: array (strict: $flag) will be true [array type, one exist]</li>
<li class="success">arraySearchSimple array searched with key: more / value: array (strict: $flag) will be false [array type, none exist]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, not strict, int and string]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, not strict, both string]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, not strict, int and int]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, strict, int and string]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, strict, both string]</li>
<li class="success">arraySearchSimple array searched with key: barbaz / value: array (strict: $flag) will be true [array type, both exist, strict, int and int]</li>
<li class="success">arraySearchSimple array searched with key: zapzap / value: array (strict: $flag) will be false [array type, both exist, strict, int and int to string and string]</li>
<li class="success">arraySearchSimple array searched with key: zapzap / value: array (strict: $flag) will be true [array type, both exist, strict, string and string to string and string]</li>
<li class="success">arraySearchSimple array searched with key: zapzap / value: array (strict: $flag) will be true [array type, both exist, not strict, int and int to string and string]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: NULL [find single, standard]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: true [find single, prefix]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: NULL [find single, flat]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: true [find single, flat, prefix]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: NULL [not found, standard]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: true [not found, standard, prefix]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: NULL [not found, flat]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: true [not found, flat, prefix]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: NULL [multiple found, standard]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: NULL [multiple found, flat]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: NULL [search multiple, standard]</li>
<li class="success">arraySearchKey Search array with keys and flat: NULL, prefix: true [search multiple, prefix]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: NULL [search multiple, flat]</li>
<li class="success">arraySearchKey Search array with keys and flat: true, prefix: true [search multiple, flat, prefix]</li>
<li class="success">arrayMergeRecursive ... [two arrays]</li>
<li class="success">arrayMergeRecursive ... [two arrays, string flag]</li>
<li class="success">arrayMergeRecursive ... [non hash array merge, no string flag]</li>
<li class="success">arrayMergeRecursive ... [non hash array merge, string flag]</li>
<li class="success">arrayMergeRecursive with E_USER_WARNING [too view arguments]</li>
<li class="success">arrayMergeRecursive with E_USER_WARNING [only one array]</li>
<li class="success">arrayMergeRecursive with E_USER_WARNING [non array between array]</li>
<li class="success">arrayDiff array diff array will be array [one matching]</li>
<li class="success">arrayDiff array diff array will be array [all the same]</li>
<li class="success">arrayDiff array diff array will be array [all different]</li>
<li class="success">arrayDiff array diff array will be array [empty arrays]</li>
<li class="success">inArrayAny needle array in haystack array will be array [all exist in haystack]</li>
<li class="success">inArrayAny needle array in haystack array will be array [not all exist in haystack]</li>
<li class="success">inArrayAny needle array in haystack array will be false [none exist in haystack]</li>
<li class="success">genAssocArray array array with false or false and flag set only false will be array [non set]</li>
<li class="success">genAssocArray array array with a or false and flag set only false will be array [key set]</li>
<li class="success">genAssocArray array array with false or a and flag set only false will be array [value set]</li>
<li class="success">genAssocArray array array with a or b and flag set only false will be array [key and value set, add empty, null]</li>
<li class="success">genAssocArray array array with a or b and flag set only false will be array [key and value set, add empty]</li>
<li class="success">genAssocArray array array with a or b and flag set only true will be array [key/value set, skip empty]</li>
<li class="success">testFlattenArray array array will be array [array key/value, single]</li>
<li class="success">testFlattenArray array array will be array [array values, single]</li>
<li class="success">testFlattenArray array array will be array [array key/value, multi]</li>
<li class="success">testFlattenArray array array will be array [array with double values]</li>
<li class="success">flattenArrayKey array array will be array [array key/value, single]</li>
<li class="success">flattenArrayKey array array will be array [array values, single]</li>
<li class="success">flattenArrayKey array array will be array [array key/value, multi]</li>
<li class="success">flattenArrayKey array array will be array [array with double values]</li>
<li class="success">flattenArrayKeyLeavesOnly array array will be array [array key/value, single]</li>
<li class="success">flattenArrayKeyLeavesOnly array array will be array [array values, single]</li>
<li class="success">flattenArrayKeyLeavesOnly array array will be array [array key/value, multi]</li>
<li class="success">flattenArrayKeyLeavesOnly array array will be array [array with double values]</li>
<li class="success">arrayFlatForKey array array will be array [all present, single level]</li>
<li class="success">arrayFlatForKey array array will be array [no sub arrays]</li>
<li class="success">arrayFlatForKey array array will be array [sub arrays with missing]</li>
<li class="success">arrayFlatForKey array array will be array [deep nested sub arrays]</li>
<li class="success">arrayGetNextPrevKey get next/prev key for b wtih a/c [find, ok]</li>
<li class="success">arrayGetNextPrevKey get next/prev key for a wtih NULL/b [find, first]</li>
<li class="success">arrayGetNextPrevKey get next/prev key for c wtih b/NULL [find, last]</li>
<li class="success">arrayGetNextPrevKey get next/prev key for z wtih NULL/NULL [find, not found]</li>
<li class="success">arrayGetNextPrevKey get next/prev key for 1 wtih 0/2 [int, index]</li>
<li class="success">arrayReturnMatchingKeyOnly get only selected key entries from array [limited entries]</li>
<li class="success">arrayReturnMatchingKeyOnly get only selected key entries from array [limited entries, with one wrong key]</li>
<li class="success">arrayReturnMatchingKeyOnly get only selected key entries from array [wrong keys only]</li>
<li class="success">arrayReturnMatchingKeyOnly get only selected key entries from array [empty keys]</li>
<li class="success">arrayModifyKey check that key is correctly modified with Prefix: and .suffix [prefix and suffix add]</li>
<li class="success">arrayModifyKey check that key is correctly modified with Prefix: and '' [prefix add only]</li>
<li class="success">arrayModifyKey check that key is correctly modified with '' and .suffix [suffix add only]</li>
<li class="success">arrayModifyKey check that key is correctly modified with '' and .suffix [empty array]</li>
<li class="success">arrayModifyKey check that key is correctly modified with '' and '' [no suffix or prefix]</li>
<li class="success">arrayModifyKey check that key is correctly modified with '' and .suffix [integer index mixed]</li>
<li class="success">sortArray sort array with lower case NULL, reverse NULL, maintain keys NULL with expeted array [sort default]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys false with expeted array [sort param set]</li>
<li class="success">sortArray sort array with lower case true, reverse false, maintain keys false with expeted array [sort lower case]</li>
<li class="success">sortArray sort array with lower case false, reverse true, maintain keys false with expeted array [sort reverse]</li>
<li class="success">sortArray sort array with lower case true, reverse true, maintain keys false with expeted array [sort lower case + reverse]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys false with expeted array [keys, do not maintain, default]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys true with expeted array [sort maintain keys]</li>
<li class="success">sortArray sort array with lower case true, reverse false, maintain keys true with expeted array [sort maintain keys + lower case]</li>
<li class="success">sortArray sort array with lower case false, reverse true, maintain keys true with expeted array [sort maintain keys + reverse]</li>
<li class="success">sortArray sort array with lower case true, reverse true, maintain keys true with expeted array [sort maintain keys + lower case + reverse]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys false with expeted array [empty]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys false with expeted array [null entries]</li>
<li class="success">sortArray sort array with lower case false, reverse false, maintain keys false with expeted array [double entries]</li>
<li class="success">ksortArray sort array with lower case false, reverse false with expeted array [sort keys]</li>
<li class="success">ksortArray sort array with lower case true, reverse false with expeted array [sort keys + lower case]</li>
<li class="success">ksortArray sort array with lower case false, reverse true with expeted array [sort keys + reverse]</li>
<li class="success">ksortArray sort array with lower case true, reverse true with expeted array [sort keys + lower case + reverse]</li>
<li class="success">ksortArray sort array with lower case false, reverse false with expeted array [empty]</li>
<li class="success">findArraysMissingKey array find other_block with NULL and missing time_validation [find, no key set]</li>
<li class="success">findArraysMissingKey array find other_block with pflaume and missing time_validation [find, key set]</li>
<li class="success">findArraysMissingKey array find other_block with pflaume and missing time_validation [find, key set, different separator]</li>
<li class="success">findArraysMissingKey array find other_block with pflaume and missing array [find, key set, multiple check]</li>
<li class="success">findArraysMissingKey array find access_d_cd with NULL and missing time_validation [has set]</li>
<li class="success">findArraysMissingKey array find not_found with NULL and missing value [not found]</li>
<li class="success">findArraysMissingKey array find something with NULL and missing other [empty]</li>
<li class="success">selectArrayFromOption array find lookup with 1, strict: false, case sensitive: false, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [search, flat with found]</li>
<li class="success">selectArrayFromOption array find lookup with 1, strict: false, case sensitive: false, recursive: true, flag result: $flag_result, flag separator: NULL amd expected array [search, recusrive with found]</li>
<li class="success">selectArrayFromOption array find lookup with 1, strict: false, case sensitive: false, recursive: true, flag result: $flag_result, flag separator: + amd expected array [search, recusrive with found, other separator]</li>
<li class="success">selectArrayFromOption array find lookup with 1, strict: false, case sensitive: false, recursive: true, flag result: $flag_result, flag separator: NULL amd expected array [search, recusrive with found, not flat result]</li>
<li class="success">selectArrayFromOption array find other with Other, strict: false, case sensitive: true, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [search case insensitive]</li>
<li class="success">selectArrayFromOption array find other with Other, strict: false, case sensitive: false, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [search case sensitiv]</li>
<li class="success">selectArrayFromOption array find strict with 2, strict: true, case sensitive: false, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [search strict]</li>
<li class="success">selectArrayFromOption array find strict with 2, strict: false, case sensitive: false, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [search not strict]</li>
<li class="success">selectArrayFromOption array find something with NOT_SET_AT_ALL, strict: false, case sensitive: false, recursive: false, flag result: $flag_result, flag separator: NULL amd expected array [empty]</li>
<li class="success">getRandomEntryFromArray get random value from array [empty array]</li>
<li class="success">getRandomEntryFromArray get random value from array [single element array]</li>
<li class="success">getRandomEntryFromArray get random value from array [multiple elements array]</li>
<li class="success">removeArrayEntryByValue Remove '' from array array, with NULL [empty array]</li>
<li class="success">removeArrayEntryByValue Remove only from array array, with NULL [single element array]</li>
<li class="success">removeArrayEntryByValue Remove foo from array array, with NULL [single element array, not found]</li>
<li class="success">removeArrayEntryByValue Remove second from array array, with NULL [multiple elements array]</li>
<li class="success">removeArrayEntryByValue Remove first from array array, with NULL [array with multiple identical elements]</li>
<li class="success">removeArrayEntryByValue Remove second from array array, with NULL [array with multiple identical elements, other remove]</li>
<li class="success">removeArrayEntryByValue Remove value2 from array array, with NULL [array with key value entries]</li>
<li class="success">removeArrayEntryByValue Remove array from array array, with NULL [nested array, array match]</li>
<li class="success">removeArrayEntryByValue Remove 3 from array array, with NULL [strict test, off]</li>
<li class="success">removeArrayEntryByValue Remove 3 from array array, with true [strict test, on]</li>
<li class="success">removeArrayEntryByValue Remove false from array array, with NULL [strict test bool, off]</li>
<li class="success">removeArrayEntryByValue Remove false from array array, with true [strict test bool, on]</li>
<li class="success">removeArrayEntryByValue Remove 3.14 from array array, with NULL [strict test float, off]</li>
<li class="success">removeArrayEntryByValue Remove 3.14 from array array, with true [strict test float, on]</li>
<li class="success">removeArrayEntryByValue Remove 1 from array array, with NULL [stric test float and int, off]</li>
<li class="success">removeArrayEntryByValue Remove 1 from array array, with true [stric test float and int, on]</li>
<li class="success">addStringToEachValueInArray Add string to each value in array, with NULL [empty array]</li>
<li class="success">addStringToEachValueInArray Add '' to each value in array, with NULL [empty string to add]</li>
<li class="success">addStringToEachValueInArray Add pre_ to each value in array, with true [prefix true]</li>
<li class="success">addStringToEachValueInArray Add _suf to each value in array, with false [prefix false]</li>
<li class="success">addStringToEachValueInArray Add X to each value in array, with true [mixed values]</li>
<li class="success">createSortedArrayByKey Sort the array by keys recursively [empty]</li>
<li class="success">createSortedArrayByKey Sort the array by keys recursively [flat array]</li>
<li class="success">createSortedArrayByKey Sort the array by keys recursively [nested array]</li>
<li class="success">createSortedArrayByKey Sort the array by keys recursively [deeply nested array]</li>
<li class="success">createSortedArrayByKey Sort the array by keys recursively [mixed key type]</li>
</ul>
<h2>\CoreLibs\Combined\DateTime method tests</h2>
<ul>
<li class="success">dateStringFormat 1641515890 (mt false, float mt false) will be 2022-01-07 09:38:10 [valid timestamp no microtime]</li>
<li class="success">dateStringFormat 1641515890 (mt true, float mt false) will be 2022-01-07 09:38:10 [valid timestamp with microtime]</li>
<li class="success">dateStringFormat 1641515890 (mt true, float mt true) will be 2022-01-07 09:38:10 [valid timestamp with microtime float]</li>
<li class="success">dateStringFormat 1641515890.123456 (mt true, float mt false) will be 2022-01-07 09:38:10 1235ms [valid micro timestamp with microtime]</li>
<li class="success">dateStringFormat 1641515890.123456 (mt true, float mt true) will be 2022-01-07 09:38:10.1235 [valid micro timestamp with microtime float]</li>
<li class="success">dateStringFormat 1641515890.123456 (mt false, float mt false) will be 2022-01-07 09:38:10 [valid micro timestamp no microtime]</li>
<li class="success">dateStringFormat -123123 (mt false, float mt false) will be 1969-12-30 22:47:57 [invalid timestamp]</li>
<li class="success">timeStringFormat 3600 (microtime false) will be 1h 0m 0s [on hour]</li>
<li class="success">timeStringFormat 1641515890 (microtime false) will be 18999d 0h 38m 10s [interval no microtime]</li>
<li class="success">timeStringFormat 1641515890 (microtime true) will be 18999d 0h 38m 10s 0ms [interval with microtime]</li>
<li class="success">timeStringFormat 1641515890.123456 (microtime false) will be 18999d 0h 38m 10s [micro interval no microtime]</li>
<li class="success">timeStringFormat 1641515890.123456 (microtime true) will be 18999d 0h 38m 10s 124ms [micro interval with microtime]</li>
<li class="success">timeStringFormat -1641515890 (microtime false) will be -18999d 0h 38m 10s [negative interval no microtime]</li>
<li class="success">timeStringFormat 0.123456 (microtime true) will be 0s 123ms [microtime only]</li>
<li class="success">timeStringFormat 30.123456 (microtime true) will be 30s 123ms [seconds only]</li>
<li class="success">timeStringFormat 90.123456 (microtime true) will be 1m 30s 123ms [minutes only]</li>
<li class="success">timeStringFormat 3690.123456 (microtime true) will be 1h 1m 30s 123ms [hours only]</li>
<li class="success">timeStringFormat 90090.123456 (microtime true) will be 1d 1h 1m 30s 123ms [days only]</li>
<li class="success">timeStringFormat 1d 1h 1m 30s 1235ms (microtime true) will be 1d 1h 1m 30s 1235ms [already set]</li>
<li class="success">timeStringFormat xyz (microtime true) will be 0s [invalid data]</li>
<li class="success">timeStringFormat 999999999999999 (microtime false) will be 1s [out of bounds timestamp]</li>
<li class="success">intervalStringFormat 3600 (microtime false) will be 1h 0m 0s [on hour]</li>
<li class="success">intervalStringFormat 1641515890 (microtime false) will be 18999d 0h 38m 10s [interval no microtime]</li>
<li class="success">intervalStringFormat 1641515890 (microtime true) will be 18999d 0h 38m 10s 0ms [interval with microtime]</li>
<li class="success">intervalStringFormat 1641515890.123456 (microtime false) will be 18999d 0h 38m 10s [micro interval no microtime]</li>
<li class="success">intervalStringFormat 1641515890.123456 (microtime true) will be 18999d 0h 38m 10s 124ms [micro interval with microtime]</li>
<li class="success">intervalStringFormat -1641515890 (microtime false) will be -18999d 0h 38m 10s [negative interval no microtime]</li>
<li class="success">intervalStringFormat 0.123456 (microtime true) will be 0s 123ms [microtime only]</li>
<li class="success">intervalStringFormat 30.123456 (microtime true) will be 30s 123ms [seconds only]</li>
<li class="success">intervalStringFormat 90.123456 (microtime true) will be 1m 30s 123ms [minutes only]</li>
<li class="success">intervalStringFormat 3690.123456 (microtime true) will be 1h 1m 30s 123ms [hours only]</li>
<li class="success">intervalStringFormat 90090.123456 (microtime true) will be 1d 1h 1m 30s 123ms [days only]</li>
<li class="success">intervalStringFormat 1d 1h 1m 30s 1235ms (microtime true) will be 1d 1h 1m 30s 1235ms [already set]</li>
<li class="success">intervalStringFormat xyz (microtime true) will be 0s [invalid data]</li>
<li class="success">intervalStringFormat 999999999999999 (microtime false) will be 1s [out of bounds timestamp]</li>
<li class="success">intervalStringFormat $input will be 1m / NULL [(60) default value]</li>
<li class="success">intervalStringFormat $input will be 1m 0s 0ms / NULL [(60) default value, skip_last_zero:false]</li>
<li class="success">intervalStringFormat $input will be 2m 100ms / NULL [(120.1) default value]</li>
<li class="success">intervalStringFormat $input will be 2m 0s 100ms / NULL [(120.1) default value, skip_zero:false]</li>
<li class="success">intervalStringFormat $input will be 2m 100ms / NULL [(120.1) default value, skip_last_zero:false]</li>
<li class="success">intervalStringFormat $input will be 1h 1s / NULL [(3601) default value]</li>
<li class="success">intervalStringFormat $input will be 1h 0m 1s / NULL [(3601) default value, skip_zero:false]</li>
<li class="success">intervalStringFormat $input will be 1h 1s 0ms / NULL [(3601) default value, skip_last_zero:false]</li>
<li class="success">intervalStringFormat $input will be NULL / array [exception: \UnexpectedValueException:1]</li>
<li class="success">intervalStringFormat: test Exceptions with data set "UnexpectedValueException: 1 A"</li>
<li class="success">intervalStringFormat: test Exceptions with data set "UnexpectedValueException: 1 B"</li>
<li class="success">intervalStringFormat: test Exceptions with data set "LengthException: 3"</li>
<li class="success">intervalStringFormat: test Exceptions with data set "UnexpectedValueException: 4"</li>
<li class="success">intervalStringFormat: test Exceptions with data set "UnexpectedValueException: 5"</li>
<li class="success">stringToTime 18999d 0h 38m 10s will be 1641515890 [interval no microtime]</li>
<li class="success">stringToTime 18999d 0h 38m 10s 1234567890ms will be 1642750457.89 [micro interval with microtime]</li>
<li class="success">stringToTime -18999d 0h 38m 10s will be -1641515890 [negative interval no microtime]</li>
<li class="success">stringToTime 0s 1235ms will be 1.235 [microtime only]</li>
<li class="success">stringToTime 30s 1235ms will be 31.235 [seconds only]</li>
<li class="success">stringToTime 1m 30s 1235ms will be 91.235 [minutes only]</li>
<li class="success">stringToTime 1h 1m 30s 1235ms will be 3691.235 [hours only]</li>
<li class="success">stringToTime 1d 1h 1m 30s 1235ms will be 90091.235 [days only]</li>
<li class="success">stringToTime 1day 1hour 1min 30second 1235millisecond will be 90091.235 [days only with long name]</li>
<li class="success">stringToTime 5day will be 432000 [day singular]</li>
<li class="success">stringToTime 3days will be 259200 [days plural]</li>
<li class="success">stringToTime 2days 5h will be 190800 [days with space]</li>
<li class="success">stringToTime 1day1h will be 90000 [day without space]</li>
<li class="success">stringToTime 2hour will be 7200 [hour singular]</li>
<li class="success">stringToTime 4hours will be 14400 [hours plural]</li>
<li class="success">stringToTime 3hours 30m will be 12600 [hours with space]</li>
<li class="success">stringToTime 1hour30m will be 5400 [hour without space]</li>
<li class="success">stringToTime 45min will be 2700 [min short]</li>
<li class="success">stringToTime 1minute will be 60 [minute singular]</li>
<li class="success">stringToTime 10minutes will be 600 [minutes plural]</li>
<li class="success">stringToTime 5minutes 20s will be 320 [minutes with space]</li>
<li class="success">stringToTime 2min30s will be 150 [min without space]</li>
<li class="success">stringToTime 30sec will be 30 [sec short]</li>
<li class="success">stringToTime 1second will be 1 [second singular]</li>
<li class="success">stringToTime 45seconds will be 45 [seconds plural]</li>
<li class="success">stringToTime 15seconds 500ms will be 15.5 [seconds with space]</li>
<li class="success">stringToTime 10sec250ms will be 10.25 [sec without space]</li>
<li class="success">stringToTime 500ms will be 0.5 [ms short]</li>
<li class="success">stringToTime 250millis will be 0.25 [millis short]</li>
<li class="success">stringToTime 250millisec will be 0.25 [millisec medium singular]</li>
<li class="success">stringToTime 250millisecs will be 0.25 [millisecs medium plural]</li>
<li class="success">stringToTime 250millisec will be 0.25 [misec medium singular]</li>
<li class="success">stringToTime 250millisecs will be 0.25 [msecs medium plural]</li>
<li class="success">stringToTime 1millisecond will be 0.001 [millisecond long singular]</li>
<li class="success">stringToTime 999milliseconds will be 0.999 [milliseconds long plural]</li>
<li class="success">stringToTime -5d will be -432000 [negative days]</li>
<li class="success">stringToTime -3h will be -10800 [negative hours]</li>
<li class="success">stringToTime -45m will be -2700 [negative minutes]</li>
<li class="success">stringToTime -30s will be -30 [negative seconds]</li>
<li class="success">stringToTime -500ms will be -0.5 [negative milliseconds]</li>
<li class="success">stringToTime -2days 3hours 15minutes 30seconds 250milliseconds will be -184530.25 [negative complex]</li>
<li class="success">stringToTime 1d 2h 3m 4s 5ms will be 93784.005 [all components short]</li>
<li class="success">stringToTime 2days 3hours 4minutes 5seconds 678milliseconds will be 183845.678 [all components long]</li>
<li class="success">stringToTime 1day 2h 3minutes 4sec 100ms will be 93784.1 [mixed short and long]</li>
<li class="success">stringToTime 1d2h3m4s5ms will be 93784.005 [no spaces between components]</li>
<li class="success">stringToTime 5d 123ms will be 432000.123 [only days and milliseconds]</li>
<li class="success">stringToTime 2h 45s will be 7245 [only hours and seconds]</li>
<li class="success">stringToTime 30m 500ms will be 1800.5 [only minutes and milliseconds]</li>
<li class="success">stringToTime 0s will be 0 [zero seconds]</li>
<li class="success">stringToTime 0s 123ms will be 0.123 [zero with milliseconds]</li>
<li class="success">stringToTime 365days will be 31536000 [large days]</li>
<li class="success">stringToTime 48hours will be 172800 [large hours]</li>
<li class="success">stringToTime 1440minutes will be 86400 [large minutes]</li>
<li class="success">stringToTime 86400seconds will be 86400 [large seconds]</li>
<li class="success">stringToTime 1d 2h 3m 4s 5ms will be 93784.005 [extra spaces]</li>
<li class="success">stringToTime 1d 2h3m 4s5ms will be 93784.005 [mixed spaces and no spaces]</li>
<li class="success">stringToTime 7d will be 604800 [only days short]</li>
<li class="success">stringToTime 12h will be 43200 [only hours short]</li>
<li class="success">stringToTime 90m will be 5400 [only minutes short]</li>
<li class="success">stringToTime 120s will be 120 [only seconds short]</li>
<li class="success">stringToTime 1500ms will be 1.5 [only milliseconds short]</li>
<li class="success">stringToTime 1641515890 will be 1641515890 [already set]</li>
<li class="success">stringToTime xyz will be xyz [invalid data]</li>
<li class="success">stringToTime will be [empty data]</li>
<li class="success">stringToTime 99999999999999999999d will be 8.64E+24 [out of bound data]</li>
<li class="success">stringToTime - 9 d 2h 58minutes 35 seconds 123 ms will be -788315.123 [spaces inbetween]</li>
<li class="success">stringToTime invalid input will throw exception if requested</li>
<li class="success">stringToTime empty input will throw exception if requested</li>
<li class="success">checkDate 2021-12-12 will be true [valid date with -]</li>
<li class="success">checkDate 2021/12/12 will be true [valid date with /]</li>
<li class="success">checkDate 2021-12-12 12:12:12 will be true [valid date time with -]</li>
<li class="success">checkDate 2021-31-31 will be false [invalid date]</li>
<li class="success">checkDate xyz will be false [invalid date string]</li>
<li class="success">checkDate 9999-12-31 will be true [out of bound date]</li>
<li class="success">checkDateTime 2021-12-12 12:12:12 will be true [valid date time with -]</li>
<li class="success">checkDateTime 2021/12/12 12:12:12 will be true [valid date time with /]</li>
<li class="success">checkDateTime 2021/12/12 12:12 will be true [vald date time with hour/min]</li>
<li class="success">checkDateTime 2021-12-12 will be false [valid date missing time]</li>
<li class="success">checkDateTime 2021-12-12 ab:cd will be false [valid date invalid time string]</li>
<li class="success">checkDateTime 2021-12-12 35:12 will be false [invalid hour +]</li>
<li class="success">checkDateTime 2021-12-12 -12:12 will be false [invalid hour -]</li>
<li class="success">checkDateTime 2021-12-12 23:65:12 will be false [invalid minute +]</li>
<li class="success">checkDateTime 2021-12-12 23:-12:12 will be false [invalid minute -]</li>
<li class="success">checkDateTime 2021-12-12 23:12:99 will be false [invalid seconds +]</li>
<li class="success">checkDateTime 2021-12-12 23:12:-12 will be false [invalid seconds -]</li>
<li class="success">checkDateTime 2021-12-12 23:12:ss will be false [invalid seconds string]</li>
<li class="success">compareDate 2020-12-12 compared to 2021-12-12 will be -1 [first date smaller]</li>
<li class="success">compareDate 2020-12-12 compared to 2020-12-12 will be 0 [dates equal]</li>
<li class="success">compareDate 2021-12-12 compared to 2020-12-12 will be 1 [second date smaller]</li>
<li class="success">compareDate 2020-12-12 12:12:12 compared to 2020-12-12 13:13:13 will be 0 [dates equal with different time]</li>
<li class="success">compareDate -- compared to -- will be false [invalid dates --]</li>
<li class="success">compareDate '' compared to '' will be false [empty dates]</li>
<li class="success">compareDate not a date compared to not a date either will be false [invalid dates]</li>
<li class="success">compareDate 1990-01-01 compared to not a date either will be false [invalid end date]</li>
<li class="success">compareDate 1900-1-1 compared to 9999-12-31 will be -1 [out of bound dates]</li>
<li class="success">compareDateTime 2020-12-12 compared to 2021-12-12 will be -1 [first date smaller no time]</li>
<li class="success">compareDateTime 2020-12-12 compared to 2020-12-12 will be 0 [dates equal no timestamp]</li>
<li class="success">compareDateTime 2021-12-12 compared to 2020-12-12 will be 1 [second date smaller no timestamp]</li>
<li class="success">compareDateTime 2020-12-12 12:12:12 compared to 2020-12-12 13:13:13 will be -1 [date equal first time smaller]</li>
<li class="success">compareDateTime 2020-12-12 12:12:12 compared to 2020-12-12 12:12:12 will be 0 [date equal time equal]</li>
<li class="success">compareDateTime 2020-12-12 13:13:13 compared to 2020-12-12 12:12:12 will be 1 [date equal second time smaller]</li>
<li class="success">compareDateTime 2020-12-12 13:99:13 compared to 2020-12-12 12:12:99 will be false [valid date invalid time]</li>
<li class="success">compareDateTime 2020-12-12 13:12:13 compared to 2020-12-12 12:12:99 will be false [valid date invalid end time]</li>
<li class="success">compareDateTime -- compared to -- will be false [invalid datetimes --]</li>
<li class="success">compareDateTime '' compared to '' will be false [empty datetimess]</li>
<li class="success">compareDateTime not a date compared to not a date either will be false [invalid date times]</li>
<li class="success">compareDateTime 1990-01-01 12:12:12 compared to not a date either will be false [invalid end date time]</li>
<li class="success">calcDaysInterval 2020/1/1 compared to 2020/1/30 will be array [valid interval / not named array]</li>
<li class="success">calcDaysInterval 2020/1/1 compared to 2020/1/30 will be array [valid interval / named array]</li>
<li class="success">calcDaysInterval 2020-1-1 compared to 2020-1-30 will be array [valid interval with "-"]</li>
<li class="success">calcDaysInterval 2020/1/1 12:12:12 compared to 2020/1/30 13:13:13 will be array [valid interval with time]</li>
<li class="success">calcDaysInterval abc compared to xyz will be array [invalid dates]</li>
<li class="success">calcDaysInterval 1900-1-1 compared to 9999-12-31 will be array [out of bound dates]</li>
<li class="success">calcDaysInterval 2020/1/1 compared to 2020/1/30 will be array [exclude end date]</li>
<li class="success">calcDaysInterval 2020/1/1 compared to 2020/1/30 will be array [exclude start date]</li>
<li class="success">calcDaysInterval 2020/1/1 compared to 2020/1/30 will be array [exclude start and end date]</li>
<li class="success">calcDaysInterval 2020/1/30 compared to 2020/1/1 will be array [reverse: valid interval]</li>
<li class="success">calcDaysInterval 2020/1/30 compared to 2020/1/1 will be array [reverse: exclude end date]</li>
<li class="success">calcDaysInterval 2020/1/30 compared to 2020/1/1 will be array [reverse: exclude start date]</li>
<li class="success">calcDaysInterval 2020/1/30 compared to 2020/1/1 will be array [reverse: exclude start and end date]</li>
<li class="success">weekdayListProvider 0 (short NULL) will be Inv [0 invalid]</li>
<li class="success">weekdayListProvider 0 (short true) will be Invalid [0 invalid long]</li>
<li class="success">weekdayListProvider 1 (short NULL) will be Mon [1 short]</li>
<li class="success">weekdayListProvider 1 (short true) will be Monday [1 long]</li>
<li class="success">weekdayListProvider 2 (short NULL) will be Tue [2 short]</li>
<li class="success">weekdayListProvider 2 (short true) will be Tuesday [2 long]</li>
<li class="success">weekdayListProvider 3 (short NULL) will be Wed [3 short]</li>
<li class="success">weekdayListProvider 3 (short true) will be Wednesday [3 long]</li>
<li class="success">weekdayListProvider 4 (short NULL) will be Thu [4 short]</li>
<li class="success">weekdayListProvider 4 (short true) will be Thursday [4 long]</li>
<li class="success">weekdayListProvider 5 (short NULL) will be Fri [5 short]</li>
<li class="success">weekdayListProvider 5 (short true) will be Friday [5 long]</li>
<li class="success">weekdayListProvider 6 (short NULL) will be Sat [6 short]</li>
<li class="success">weekdayListProvider 6 (short true) will be Saturday [6 long]</li>
<li class="success">weekdayListProvider 7 (short NULL) will be Sun [7 short]</li>
<li class="success">weekdayListProvider 7 (short true) will be Sunday [7 long]</li>
<li class="success">weekdayListProvider 8 (short NULL) will be Inv [8 invalid]</li>
<li class="success">weekdayListProvider 8 (short true) will be Invalid [8 invalid long]</li>
<li class="success">setWeekdayNumberFromDate 2022-02-31 will be -1 [invalid date]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-25 will be 1 [1: monday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-26 will be 2 [2: tuesday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-27 will be 3 [3: wednesday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-28 will be 4 [4: thursday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-29 will be 5 [5: friday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-30 will be 6 [6: saturday]</li>
<li class="success">setWeekdayNumberFromDate 2022-07-31 will be 7 [7: sunday]</li>
<li class="success">setWeekdayNameFromDate 2022-02-31 (short NULL) will be Inv [invalid date short]</li>
<li class="success">setWeekdayNameFromDate 2022-02-31 (short true) will be Invalid [invalid date long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-25 (short NULL) will be Mon [Mon short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-25 (short true) will be Monday [Monday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-26 (short NULL) will be Tue [Tue short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-26 (short true) will be Tuesday [Tuesday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-27 (short NULL) will be Wed [Wed short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-27 (short true) will be Wednesday [Wednesday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-28 (short NULL) will be Thu [Thu short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-28 (short true) will be Thursday [Thursday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-29 (short NULL) will be Fri [Fri short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-29 (short true) will be Friday [Friday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-30 (short NULL) will be Sat [Sat short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-30 (short true) will be Saturday [Saturday long]</li>
<li class="success">setWeekdayNameFromDate 2022-07-31 (short NULL) will be Sun [Sun short]</li>
<li class="success">setWeekdayNameFromDate 2022-07-31 (short true) will be Sunday [Sunday long]</li>
<li class="success">dateRangeHasWeekend 2023-07-03 and 2023-07-04 are expected weekend false [no weekend]</li>
<li class="success">dateRangeHasWeekend 2023-07-01 and 2023-07-04 are expected weekend true [start weekend sat]</li>
<li class="success">dateRangeHasWeekend 2023-07-02 and 2023-07-04 are expected weekend true [start weekend sun]</li>
<li class="success">dateRangeHasWeekend 2023-07-03 and 2023-07-08 are expected weekend true [end weekend sat]</li>
<li class="success">dateRangeHasWeekend 2023-07-03 and 2023-07-09 are expected weekend true [end weekend sun]</li>
<li class="success">dateRangeHasWeekend 2023-07-03 and 2023-07-27 are expected weekend true [long period > 6 days]</li>
<li class="success">dateRangeHasWeekend 2023-07-04 and 2023-07-03 are expected weekend false [reverse: no weekend]</li>
<li class="success">dateRangeHasWeekend 2023-07-04 and 2023-07-01 are expected weekend true [reverse: start weekend sat]</li>
<li class="success">dateRangeHasWeekend 2023-07-04 and 2023-07-02 are expected weekend true [reverse: start weekend sun]</li>
<li class="success">dateRangeHasWeekend 2023-07-08 and 2023-07-03 are expected weekend true [reverse: end weekend sat]</li>
<li class="success">dateRangeHasWeekend 2023-07-09 and 2023-07-03 are expected weekend true [reverse: end weekend sun]</li>
<li class="success">dateRangeHasWeekend 2023-07-27 and 2023-07-03 are expected weekend true [reverse: long period > 6 days]</li>
</ul>
<h2>\CoreLibs\Convert\Byte method tests</h2>
<ul>
<li class="success">humanReadableByteFormat 1024 will be 1 KB, 1.02 KiB SI, 1KB no space, 1.00 KB adjust, 1.02KiB SI/no space [string number]</li>
<li class="success">humanReadableByteFormat 1024 MB will be 1024 MB, 1024 MB SI, 1024 MB no space, 1024 MB adjust, 1024 MB SI/no space [invalid string number]</li>
<li class="success">humanReadableByteFormat -123123123 will be -117.42 MB, -123.12 MiB SI, -117.42MB no space, -117.42 MB adjust, -123.12MiB SI/no space [negative number]</li>
<li class="success">humanReadableByteFormat 999999 will be 976.56 KB, 1 MiB SI, 976.56KB no space, 976.56 KB adjust, 1MiB SI/no space [kilobyte minus one]</li>
<li class="success">humanReadableByteFormat 999999999 will be 953.67 MB, 1 GiB SI, 953.67MB no space, 953.67 MB adjust, 1GiB SI/no space [megabyte minus one]</li>
<li class="success">humanReadableByteFormat 254779258 will be 242.98 MB, 254.78 MiB SI, 242.98MB no space, 242.98 MB adjust, 254.78MiB SI/no space [megabyte]</li>
<li class="success">humanReadableByteFormat 999999999999999 will be 909.49 TB, 1 PiB SI, 909.49TB no space, 909.49 TB adjust, 1PiB SI/no space [terabyte minus one]</li>
<li class="success">humanReadableByteFormat 588795544887632 will be 535.51 TB, 588.8 TiB SI, 535.51TB no space, 535.51 TB adjust, 588.8TiB SI/no space [terabyte]</li>
<li class="success">humanReadableByteFormat 999999999999999999 will be 888.18 PB, 1 EiB SI, 888.18PB no space, 888.18 PB adjust, 1EiB SI/no space [petabyte minus one]</li>
<li class="success">humanReadableByteFormat 9223372036854775807 will be 8 EB, 9.22 EiB SI, 8EB no space, 8.00 EB adjust, 9.22EiB SI/no space [max int value]</li>
<li class="success">humanReadableByteFormat 1.0E+21 will be 867.36 EB, 1000 EiB SI, 867.36EB no space, 867.36 EB adjust, 1000EiB SI/no space [exabyte minus 1]</li>
<li class="success">stringByteFormat -117.42 MB will be -123123794 and -117420000 SI [negative number]</li>
<li class="success">stringByteFormat 242.98 MB will be 254782996 and 242980000 SI [megabyte]</li>
<li class="success">stringByteFormat 254.78 MiB will be 267156193 and 254780000 SI [megabyte si]</li>
<li class="success">stringByteFormat 1 EiB will be 1152921504606846976 and 1000000000000000000 SI [petabyte]</li>
<li class="success">stringByteFormat 8 EB will be 0 and 0 SI [max int]</li>
<li class="success">stringByteFormat 867.36EB will be 0 and 0 SI [exabyte, overflow]</li>
<li class="success">stringByteFormat 1000EB will be 0 and 0 SI [huge exabyte, overflow]</li>
<li class="success">Test exception for humanReadableByteFormat with flag 99</li>
<li class="success">Test exception for stringByteFormat with flag 1</li>
<li class="success">Test exception for stringByteFormat with flag 2</li>
<li class="success">Test exception for stringByteFormat with flag 99</li>
</ul>
<h2>\CoreLibs\Convert\Color\Color method tests</h2>
<ul>
<li class="success">Single</li>
<li class="success">Convert from and to RGB via HSL, HWB, HSB/V</li>
<li class="success">Convert from and to HSL via RGB, HWB, HSB/V</li>
<li class="success">Convert from and to HSB via RGB, HWB, HSL</li>
<li class="success">Convert from and to HWB via RGB, HSL, HSB/V</li>
<li class="success">Convert from and to RGB via hex</li>
<li class="success">Convert from and to RGB linear conversion check</li>
<li class="success">Convert from and to RGB to OkLab / OkLch</li>
<li class="success">Convert from and to OkLab / OkLch</li>
<li class="success">Convert from and to RGB to Cie Lab / Cie Lch</li>
<li class="success">Convert from and to Cie Lab / Cie Lch</li>
<li class="success">Exception handling for HSB for error 1 [H]</li>
<li class="success">Exception handling for HSB for error 1 [H close]</li>
<li class="success">Exception handling for HSB for error 2 [S/W]</li>
<li class="success">Exception handling for HSB for error 2 [S/W close]</li>
<li class="success">Exception handling for HSB for error 3 [L/B]</li>
<li class="success">Exception handling for HSB for error 3 [L/B close]</li>
<li class="success">Exception handling for HSB general calls</li>
<li class="success">Exception handling for HSL for error 1 [H]</li>
<li class="success">Exception handling for HSL for error 1 [H close]</li>
<li class="success">Exception handling for HSL for error 2 [S/W]</li>
<li class="success">Exception handling for HSL for error 2 [S/W close]</li>
<li class="success">Exception handling for HSL for error 3 [L/B]</li>
<li class="success">Exception handling for HSL for error 3 [L/B close]</li>
<li class="success">Exception handling for HSL general calls</li>
<li class="success">Exception handling for HWB for error 1 [H]</li>
<li class="success">Exception handling for HWB for error 1 [H close]</li>
<li class="success">Exception handling for HWB for error 2 [S/W]</li>
<li class="success">Exception handling for HWB for error 2 [S/W close]</li>
<li class="success">Exception handling for HWB for error 3 [L/B]</li>
<li class="success">Exception handling for HWB for error 3 [L/B close]</li>
<li class="success">Exception handling for HWB general calls</li>
<li class="success">Exception handling for RGB for error 1 [R]</li>
<li class="success">Exception handling for RGB for error 1 [G]</li>
<li class="success">Exception handling for RGB for error 1 [B]</li>
<li class="success">Exception handling for RGB for error 2 [R linear]</li>
<li class="success">Exception handling for RGB for error 2 [G linear]</li>
<li class="success">Exception handling for RGB for error 2 [B linear]</li>
<li class="success">Exception handling for RGB general calls</li>
<li class="success">Exception handling for RGB setFromHex failues</li>
<li class="success">Exception handling for Lab for error 1 [L CieLab]</li>
<li class="success">Exception handling for Lab for error 1 [L OkLab]</li>
<li class="success">Exception handling for Lab for error 2 [a CieLab]</li>
<li class="success">Exception handling for Lab for error 2 [a OkLab]</li>
<li class="success">Exception handling for Lab for error 3 [b CieLab]</li>
<li class="success">Exception handling for Lab for error 3 [b OkLab]</li>
<li class="success">Exception handling for Lab general calls</li>
<li class="success">Exception handling for LCH general calls</li>
<li class="success">Exception handling for XYZ general calls</li>
</ul>
<h2>\CoreLibs\Convert\Colors legacy method tests</h2>
<ul>
<li class="success">rgb2hex 10,100,200 will be 0a64c8 [color]</li>
<li class="success">rgb2hex 12,12,12 will be 0c0c0c [gray]</li>
<li class="success">rgb2hex 0,0,0 will be 000000 [black]</li>
<li class="success">rgb2hex 255,255,255 will be ffffff [white]</li>
<li class="success">rgb2hex -12,300,12 will be false [invalid color red & green]</li>
<li class="success">rgb2hex -12,12,12 will be false [invalid color red ]</li>
<li class="success">rgb2hex 12,-12,12 will be false [invalid color green ]</li>
<li class="success">rgb2hex 12,12,-12 will be false [invalid color blue ]</li>
<li class="success">hex2rgb #0a64c8 will be array, 10,100,200 str[,], 10;100;200 str[;] [color]</li>
<li class="success">hex2rgb 0c0c0c will be array, 12,12,12 str[,], 12;12;12 str[;] [gray, long]</li>
<li class="success">hex2rgb ccc will be array, 204,204,204 str[,], 204;204;204 str[;] [gray, short]</li>
<li class="success">hex2rgb #0c0c0c will be array, 12,12,12 str[,], 12;12;12 str[;] [hex string with #]</li>
<li class="success">hex2rgb #0c0c0c0c will be false, false str[,], false str[;] [a too long hex string]</li>
<li class="success">hex2rgb 0c0c will be false, false str[,], false str[;] [a too short hex string]</li>
<li class="success">rgb2hsb 12,12,12 will be array [valid gray, rgb to hsb]</li>
<li class="success">rgb2hsb 10,100,200 will be array [valid color, rgb to hsb]</li>
<li class="success">rgb2hsb 200,10,10 will be array [valid color hue 360, rgb to hsb]</li>
<li class="success">rgb2hsb -1,12,12 will be false [invalid color r/h/h low, rgb to hsb]</li>
<li class="success">rgb2hsb 256,12,12 will be false [invalid color r/h/h high, rgb to hsb]</li>
<li class="success">rgb2hsb 12,-1,12 will be false [invalid color g/s/s low, rgb to hsb]</li>
<li class="success">rgb2hsb 12,256,12 will be false [invalid color g/s/s high, rgb to hsb]</li>
<li class="success">rgb2hsb 12,12,-1 will be false [invalid color b/b/l low, rgb to hsb]</li>
<li class="success">rgb2hsb 12,12,256 will be false [invalid color b/b/l high, rgb to hsb]</li>
<li class="success">hsb2rgb 0,0,5 will be array [valid gray, hsb to rgb]</li>
<li class="success">hsb2rgb 212,95,78.0 will be array [valid color, hsb to rgb]</li>
<li class="success">hsb2rgb 360,95,78.0 will be array [valid color hue 360, hsb to rgb]</li>
<li class="success">hsb2rgb -1,50,50 will be false [invalid color r/h/h low, hsb to rgb]</li>
<li class="success">hsb2rgb 361,50,50 will be false [invalid color r/h/h high, hsb to rgb]</li>
<li class="success">hsb2rgb 1,-1,50 will be false [invalid color g/s/s low, hsb to rgb]</li>
<li class="success">hsb2rgb 1,101,50 will be false [invalid color g/s/s high, hsb to rgb]</li>
<li class="success">hsb2rgb 1,50,-1 will be false [invalid color b/b/l low, hsb to rgb]</li>
<li class="success">hsb2rgb 1,50,101 will be false [invalid color b/b/l high, hsb to rgb]</li>
<li class="success">rgb2hsl 12,12,12 will be array [valid gray, rgb to hsl]</li>
<li class="success">rgb2hsl 10,100,200 will be array [valid color, rgb to hsl]</li>
<li class="success">rgb2hsl 200,10,10 will be array [valid color hue 360, rgb to hsl]</li>
<li class="success">rgb2hsl -1,12,12 will be false [invalid color r/h/h low, rgb to hsl]</li>
<li class="success">rgb2hsl 256,12,12 will be false [invalid color r/h/h high, rgb to hsl]</li>
<li class="success">rgb2hsl 12,-1,12 will be false [invalid color g/s/s low, rgb to hsl]</li>
<li class="success">rgb2hsl 12,256,12 will be false [invalid color g/s/s high, rgb to hsl]</li>
<li class="success">rgb2hsl 12,12,-1 will be false [invalid color b/b/l low, rgb to hsl]</li>
<li class="success">rgb2hsl 12,12,256 will be false [invalid color b/b/l high, rgb to hsl]</li>
<li class="success">hsl2rgb 0.0,0.0,4.7 will be array [valid gray, hsl to rgb]</li>
<li class="success">hsl2rgb 211.6,90.5,41.2 will be array [valid color, hsl to rgb]</li>
<li class="success">hsl2rgb 360.0,90.5,41.2 will be array [valid color hue 360, hsl to rgb]</li>
<li class="success">hsl2rgb -1,50,50 will be false [invalid color r/h/h low, hsl to rgb]</li>
<li class="success">hsl2rgb 361,50,50 will be false [invalid color r/h/h high, hsl to rgb]</li>
<li class="success">hsl2rgb 1,-1,50 will be false [invalid color g/s/s low, hsl to rgb]</li>
<li class="success">hsl2rgb 1,101,50 will be false [invalid color g/s/s high, hsl to rgb]</li>
<li class="success">hsl2rgb 1,50,-1 will be false [invalid color b/b/l low, hsl to rgb]</li>
<li class="success">hsl2rgb 1,50,101 will be false [invalid color b/b/l high, hsl to rgb]</li>
<li class="success">hsl2rgb/hsb2rgb hue 360 valid check</li>
</ul>
<h2>\CoreLibs\Convert\Encoding method tests</h2>
<ul>
<li class="success">convert encoding SJIS, source: NULL, auto: NULL [simple from UTF-8 to SJIS]</li>
<li class="success">convert encoding SJIS, source: NULL, auto: NULL [kanji from UTF-8 to SJIS]</li>
<li class="success">convert encoding SJIS, source: UTF-8, auto: NULL [kanji from UTF-8 to SJIS with source]</li>
</ul>
<h2>\CoreLibs\Convert\Html method tests</h2>
<ul>
<li class="success">htmlent I am some string will be I am some string [no conversion]</li>
<li class="success">htmlent I have special <> inside will be I have special &lt;&gt; inside [conversion]</li>
<li class="success">htmlent 1234 will be 1234 [skip number]</li>
<li class="success">htmlent 日本語 <> will be 日本語 &lt;&gt; [utf8]</li>
<li class="success">removeLB I am some string with replace NULL will be I am some string [nothing replaced, default]</li>
<li class="success">removeLB I am
some string with replace - will be I am-some string [string with \n replace -]</li>
<li class="success">removeLB I am
some string with replace _ will be I am_some string [string with \r replace _]</li>
<li class="success">removeLB I am
some string with replace NULL will be I am some string [string with \n\r, default]</li>
<li class="success">removeLB I am
some string with replace ##BR## will be I am##BR##some string [string with \n\r replae ##BR##]</li>
<li class="success">checked find string in string and return 0 will be selected [haystack is a string and matching selected]</li>
<li class="success">checked find string in string and return 1 will be checked [haystack is a string and matching checked]</li>
<li class="success">checked find not matching in string and return 1 will be NULL [haystack is a string and not matching]</li>
<li class="success">checked find a in array and return 0 will be selected [haystack is array and matching]</li>
<li class="success">checked find not matching in array and return 0 will be NULL [haystack is array and not matching]</li>
</ul>
<h2>\CoreLibs\Convert\Json method tests</h2>
<ul>
<li class="success">jsonConvertToArray {"m":2,"f":"sub_2"} (Override: false) will be array [valid json]</li>
<li class="success">jsonConvertToArray '' (Override: false) will be array [empty json]</li>
<li class="success">jsonConvertToArray not valid (Override: true) will be array [invalid json override]</li>
<li class="success">jsonConvertToArray not valid (Override: false) will be array [invalid json]</li>
<li class="success">jsonConvertToArray NULL (Override: false) will be array [null json]</li>
<li class="success">jsonConvertToArray flag test, if flag is used</li>
<li class="success">Json convert to array remove throw flag</li>
<li class="success">jsonGetLastError {} will be 0/'' [no error]</li>
<li class="success">jsonGetLastError [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] will be 1/Maximum stack depth exceeded [depth error]</li>
<li class="success">jsonGetLastError not valid will be 4/Syntax error, malformed JSON [syntax error]</li>
<li class="success">jsonValidate {} will be 0/'' [no error]</li>
<li class="success">jsonValidate [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] will be 1/Maximum stack depth exceeded [depth error]</li>
<li class="success">jsonValidate not valid will be 4/Syntax error, malformed JSON [syntax error]</li>
<li class="success">jsonValidate test valid and invalid json</li>
<li class="success">jsonValidate test exception thrown on invalid flag</li>
<li class="success">jsonValidate test no exception on valid flag</li>
<li class="success">jsonConvertArrayTo array (Override: $flag) will be {"m":2,"f":"sub_2"} [valid json]</li>
<li class="success">jsonConvertArrayTo array (Override: $flag) will be [] [empty json array]</li>
<li class="success">jsonConvertArrayTo array (Override: $flag) will be {"":""} [empty json hash]</li>
</ul>
<h2>\CoreLibs\Convert\Math method tests</h2>
<ul>
<li class="success">fceil: Input 5.5 must be 6</li>
<li class="success">fceil: Input 5.123456789 must be 6</li>
<li class="success">fceil: Input 6 must be 6</li>
<li class="success">floor: Input 5123456 with cutoff -3 must be 5123000</li>
<li class="success">floor: Input 5123456 with cutoff -10 must be 5000000</li>
<li class="success">initNumeric: Input int 5 must match 5 [5 must be 5]</li>
<li class="success">initNumeric: Input float 5.123 must match 5.123 [5.123 must be 5.123]</li>
<li class="success">initNumeric: Input string 5 must match 5 ['5' must be 5]</li>
<li class="success">initNumeric: Input string 5.123 must match 5.123 ['5.123' must be 5.123]</li>
<li class="success">initNumeric: Input $input must match 1.25992 [cube root of 2]</li>
<li class="success">initNumeric: Input $input must match 1.44225 [cube root of 3]</li>
<li class="success">initNumeric: Input $input must match NAN [cube root of -1]</li>
<li class="success">initNumeric: Input array x array must match array [[3] x [3] => [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[3] x [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[1x3L] x [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[1x3] x [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[2x3] x [3] => [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[2x3] x [3x1]]</li>
<li class="success">initNumeric: Input array x array must match array [[2x3] x [2x3] => [3x3]]</li>
<li class="success">initNumeric: Input array x array must match array [[2x3] x [3x3]]</li>
<li class="success">initNumeric: Input array x array must match array [[2x3] x [3x2]]</li>
<li class="success">initNumeric: Input array x array must match array [[3x3] x [3] => [1x3]]</li>
<li class="success">initNumeric: Input array x array must match array [[3x3] x [2x3] => [3x3]]</li>
<li class="success">initNumeric: Input array x array must match array [[3x3] x [3x3]]</li>
<li class="success">initNumeric: Input array x array must match array [[3] x [3x3]]</li>
<li class="success">initNumeric: Input array x array must match array [inblanaced [2x2,3] x [3x2]]</li>
<li class="success">initNumeric: Input array x array must match array [inblanaced [2x3] x [3x1,2]]</li>
<li class="success">equalWithEpsilon with 2.22E-16 and 2.22E-16 and Epsilon: 2.220446049250313E-16 must be equal: true [equal]</li>
<li class="success">equalWithEpsilon with 2.22E-16 and 2.32E-16 and Epsilon: 2.220446049250313E-16 must be equal: true [almost equal]</li>
<li class="success">equalWithEpsilon with 2.22E-16 and 4.222E-15 and Epsilon: 2.220446049250313E-16 must be equal: false [not equal]</li>
<li class="success">equalWithEpsilon with 2.22E-16 and 4.222E-15 and Epsilon: 0.0001 must be equal: true [equal, different epsilon]</li>
<li class="success">equalWithEpsilon with 0.0001 and 0.0002 and Epsilon: 0.0001 must be equal: false [not equal, different epsilon]</li>
<li class="success">compareWithEpsilon 0.0001 < 0.0002 with 1.0E-5 must match: true [smaller, true]</li>
<li class="success">compareWithEpsilon 0.0001 < 0.0001 with 1.0E-5 must match: false [smaller, false]</li>
<li class="success">compareWithEpsilon 0.0002 > 0.0001 with 1.0E-5 must match: true [bigger, true]</li>
<li class="success">compareWithEpsilon 0.0001 > 0.0001 with 1.0E-5 must match: false [bigger, false]</li>
</ul>
<h2>\CoreLibs\Convert\MimeAppName method tests</h2>
<ul>
<li class="success">mimeSetAppName set foo/bar with FooBar Application and will be FooBar Application [find matching app]</li>
<li class="success">mimeSetAppName set '' with Some app and will be Other file [try to set empty mime type]</li>
<li class="success">mimeSetAppName set some/app with '' and will be Other file [try to set empty app name]</li>
</ul>
<h2>\CoreLibs\Convert\MimeEncode method tests</h2>
<ul>
<li class="success">mb encoding target UTF-8 [standard UTF-8]</li>
<li class="success">mb encoding target UTF-8 [long text UTF-8]</li>
<li class="success">mb encoding target UTF-8 [standard with special chars UTF-8]</li>
<li class="success">mb encoding target UTF-8 [35 chars and space at the end UTF-8]</li>
<li class="success">mb encoding target UTF-8 [36 chars and space at the end UTF-8]</li>
<li class="success">mb encoding target UTF-8 [36 kanji and space UTF-8]</li>
</ul>
<h2>\CoreLibs\Convert\SetVarTypeNull method tests</h2>
<ul>
<li class="success">setStr '' with override NULL will be '' [empty string]</li>
<li class="success">setStr string with override NULL will be string [filled string]</li>
<li class="success">setStr string with override override will be string [valid string, override set]</li>
<li class="success">setStr 1 with override NULL will be 1 [int, no override]</li>
<li class="success">setStr 1 with override not int will be 1 [int, override set]</li>
<li class="success">setStr array with override NULL will be NULL [array, override set]</li>
<li class="success">makeStr '' with override NULL will be '' [empty string]</li>
<li class="success">makeStr string with override NULL will be string [filled string]</li>
<li class="success">makeStr string with override override will be string [valid string, override set]</li>
<li class="success">makeStr 1 with override NULL will be 1 [int, no override]</li>
<li class="success">makeStr 1 with override not int will be 1 [int, override set]</li>
<li class="success">makeStr 1.5 with override NULL will be 1.5 [float, no override]</li>
<li class="success">makeStr Closure with override function will be function [function, override set]</li>
<li class="success">makeStr Closure with override NULL will be NULL [function, no override]</li>
<li class="success">makeStr 85 with override hex will be 85 [hex value, override set]</li>
<li class="success">setInt 1 with override NULL will be 1 [int]</li>
<li class="success">setInt 1 with override -1 will be 1 [int, override set]</li>
<li class="success">setInt string with override NULL will be NULL [string, no override]</li>
<li class="success">setInt string with override -1 will be -1 [string, override]</li>
<li class="success">setInt 1.5 with override NULL will be 1 [float]</li>
<li class="success">makeInt 1 with override NULL will be 1 [int]</li>
<li class="success">makeInt 1 with override -1 will be 1 [int, override set]</li>
<li class="success">makeInt string with override NULL will be 0 [string, no override]</li>
<li class="success">makeInt string with override -1 will be 0 [string, override]</li>
<li class="success">makeInt 1.5 with override NULL will be 1 [float]</li>
<li class="success">makeInt Closure with override -1 will be -1 [function, override set]</li>
<li class="success">makeInt Closure with override NULL will be NULL [function, no override ]</li>
<li class="success">makeInt 85 with override -1 will be 85 [hex value, override set]</li>
<li class="success">setFloat 1.5 with override NULL will be 1.5 [float]</li>
<li class="success">setFloat 1.5 with override -1.5 will be 1.5 [float, override set]</li>
<li class="success">setFloat string with override NULL will be NULL [string, no override]</li>
<li class="success">setFloat string with override 1.5 will be 1.5 [string, override]</li>
<li class="success">setFloat 1 with override NULL will be 1.0 [int]</li>
<li class="success">makeFloat 1.5 with override NULL will be 1.5 [float]</li>
<li class="success">makeFloat 1.5 with override -1.5 will be 1.5 [float, override set]</li>
<li class="success">makeFloat string with override NULL will be 0.0 [string, no override]</li>
<li class="success">makeFloat string with override 1.5 will be 0.0 [string, override]</li>
<li class="success">makeFloat 1 with override NULL will be 1.0 [int]</li>
<li class="success">makeFloat Closure with override -1.0 will be -1.0 [function, override set]</li>
<li class="success">makeFloat Closure with override NULL will be NULL [function, no override]</li>
<li class="success">makeFloat 85 with override -1 will be 85.0 [hex value, override set]</li>
<li class="success">setArray array with override NULL will be array [array, empty]</li>
<li class="success">setArray array with override NULL will be array [array, filled]</li>
<li class="success">setArray string with override NULL will be NULL [string, no override]</li>
<li class="success">setArray string with override array will be array [string, override]</li>
<li class="success">setBool true with override NULL will be true [bool true]</li>
<li class="success">setBool false with override NULL will be false [bool false]</li>
<li class="success">setBool string with override NULL will be NULL [string, no override]</li>
<li class="success">setBool string with override true will be true [string, override]</li>
<li class="success">setBool true will be true [true]</li>
<li class="success">setBool false will be false [false]</li>
<li class="success">setBool on will be true [string on]</li>
<li class="success">setBool off will be false [string off]</li>
<li class="success">setBool sulzenbacher will be NULL [invalid string]</li>
<li class="success">setBool sulzenbacher will be NULL [invalid string, override]</li>
<li class="success">setBool array will be false [array to default]</li>
</ul>
<h2>\CoreLibs\Convert\SetVarType method tests</h2>
<ul>
<li class="success">setStr '' with override NULL will be '' [empty string]</li>
<li class="success">setStr string with override NULL will be string [filled string]</li>
<li class="success">setStr string with override override will be string [valid string, override set]</li>
<li class="success">setStr 1 with override NULL will be 1 [int, no override]</li>
<li class="success">setStr 1 with override not int will be 1 [int, override set]</li>
<li class="success">setStr array with override not int will be not int [array, override set]</li>
<li class="success">makeStr '' with override NULL will be '' [empty string]</li>
<li class="success">makeStr string with override NULL will be string [filled string]</li>
<li class="success">makeStr string with override override will be string [valid string, override set]</li>
<li class="success">makeStr 1 with override NULL will be 1 [int, no override]</li>
<li class="success">makeStr 1 with override not int will be 1 [int, override set]</li>
<li class="success">makeStr Closure with override function will be function [function, override set]</li>
<li class="success">makeStr 85 with override hex will be 85 [hex value, override set]</li>
<li class="success">setInt 1 with override NULL will be 1 [int]</li>
<li class="success">setInt 1 with override -1 will be 1 [int, override set]</li>
<li class="success">setInt string with override NULL will be 0 [string, no override]</li>
<li class="success">setInt string with override -1 will be -1 [string, override]</li>
<li class="success">setInt 1.5 with override NULL will be 1 [float]</li>
<li class="success">makeInt 1 with override NULL will be 1 [int]</li>
<li class="success">makeInt 1 with override -1 will be 1 [int, override set]</li>
<li class="success">makeInt string with override NULL will be 0 [string, no override]</li>
<li class="success">makeInt string with override -1 will be 0 [string, override]</li>
<li class="success">makeInt 1.5 with override NULL will be 1 [float]</li>
<li class="success">makeInt Closure with override -1 will be -1 [function, override set]</li>
<li class="success">makeInt 85 with override -1 will be 85 [hex value, override set]</li>
<li class="success">setFloat 1.5 with override NULL will be 1.5 [float]</li>
<li class="success">setFloat 1.5 with override -1.5 will be 1.5 [float, override set]</li>
<li class="success">setFloat string with override NULL will be 0.0 [string, no override]</li>
<li class="success">setFloat string with override 1.5 will be 1.5 [string, override]</li>
<li class="success">setFloat 1 with override NULL will be 1.0 [int]</li>
<li class="success">makeFloat 1.5 with override NULL will be 1.5 [float]</li>
<li class="success">makeFloat 1.5 with override -1.5 will be 1.5 [float, override set]</li>
<li class="success">makeFloat string with override NULL will be 0.0 [string, no override]</li>
<li class="success">makeFloat string with override 1.5 will be 0.0 [string, override]</li>
<li class="success">makeFloat 1 with override NULL will be 1.0 [int]</li>
<li class="success">makeFloat Closure with override -1.0 will be -1.0 [function, override set]</li>
<li class="success">makeFloat 85 with override -1 will be 85.0 [hex value, override set]</li>
<li class="success">setArray array with override NULL will be array [array, empty]</li>
<li class="success">setArray array with override NULL will be array [array, filled]</li>
<li class="success">setArray string with override NULL will be array [string, no override]</li>
<li class="success">setArray string with override array will be array [string, override]</li>
<li class="success">setBool true with override NULL will be true [bool true]</li>
<li class="success">setBool false with override NULL will be false [bool false]</li>
<li class="success">setBool string with override NULL will be false [string, no override]</li>
<li class="success">setBool string with override true will be true [string, override]</li>
<li class="success">setBool true will be true [true]</li>
<li class="success">setBool false will be false [false]</li>
<li class="success">setBool on will be true [string on]</li>
<li class="success">setBool off will be false [string off]</li>
<li class="success">setBool sulzenbacher will be false [invalid string]</li>
<li class="success">setBool sulzenbacher will be true [invalid string, override]</li>
<li class="success">setBool array will be false [array to default]</li>
</ul>
<h2>Core Libs Convert Strings Regex Validate (tests\CoreLibsConvertStringsRegexValidate)</h2>
<ul>
<li class="success">Is valid regex with valid patterns</li>
<li class="success">Is valid regex with invalid patterns</li>
<li class="success">Get last regex error string returns correct messages</li>
<li class="success">Get last regex error string with unknown error</li>
<li class="success">Validate regex with valid patterns</li>
<li class="success">Validate regex with invalid patterns</li>
<li class="success">Validate regex array structure</li>
<li class="success">Edge cases</li>
<li class="success">Preg error messages constant</li>
<li class="success">Error state isolation</li>
<li class="success">Different delimiters</li>
</ul>
<h2>\CoreLibs\Convert\Strings method tests</h2>
<ul>
<li class="success">splitFormatString '' with format '' will be '' [all empty string]</li>
<li class="success">splitFormatString '' with format 2-2 will be '' [empty input string]</li>
<li class="success">splitFormatString 1234 with format '' will be 1234 [empty format string string]</li>
<li class="success">splitFormatString 1234 with format 2-2 will be 12-34 [string format match]</li>
<li class="success">splitFormatString 1234 with format 2-2- will be 12-34 [string format trailing match]</li>
<li class="success">splitFormatString 1234 with format -2-2 will be 12-34 [string format leading match]</li>
<li class="success">splitFormatString 1234 with format 2--2 will be 12--34 [string format double inside match]</li>
<li class="success">splitFormatString 1 with format 2-2 will be 1 [string format short first]</li>
<li class="success">splitFormatString 12 with format 2-2 will be 12 [string format match first]</li>
<li class="success">splitFormatString 123 with format 2-2 will be 12-3 [string format short second]</li>
<li class="success">splitFormatString 1234567 with format 2-2 will be 12-34-567 [string format too long]</li>
<li class="success">splitFormatString 1234 with format 2_2 will be 12_34 [different split character]</li>
<li class="success">splitFormatString 123456 with format 2-2_2 will be 12-34_56 [mixed split characters]</li>
<li class="success">splitFormatString ABCD12345568ABC13 with format 2-4_5-2#4 will be AB-CD12_34556-8A#BC13 [length mixed]</li>
<li class="success">splitFormatString 12-34 with format 2-2 will be 12--3-4 [split with split chars in string]</li>
<li class="success">splitFormatString Exception catch checks for 1234 with 22[string format with no splitter match]</li>
<li class="success">splitFormatString Exception catch checks for 1234 with 2あ2[invalid format string]</li>
<li class="success">splitFormatString Exception catch checks for あいうえ with 2-2[mutltibyte string]</li>
<li class="success">splitFormatString Exception catch checks for 1234 with 2-2[mutltibyte split string]</li>
<li class="success">splitFormatStringFixed abcdefg with length 4 and split chars NULL will be abcd-efg [normal split, default split char]</li>
<li class="success">splitFormatStringFixed abcdefg with length 4 and split chars = will be abcd=efg [noraml split, other single split char]</li>
<li class="success">splitFormatStringFixed abcdefg with length 4 and split chars -=- will be abcd-=-efg [noraml split, other multiple split char]</li>
<li class="success">splitFormatStringFixed あいうえお with length 2 and split chars - will be あい-うえ-お [non ascii characters]</li>
<li class="success">splitFormatStringFixed '' with length 4 and split chars - will be '' [empty string]</li>
<li class="success">splitFormatStringFixed Exception catch checks for abcdefg with -1 [split length too short]</li>
<li class="success">splitFormatStringFixed Exception catch checks for abcdefg with 20 [split length longer than string]</li>
<li class="success">countSplitParts '' with splitters NULL will be 0 [0 elements]</li>
<li class="success">countSplitParts 1 with splitters NULL will be 1 [1 element]</li>
<li class="success">countSplitParts 1-2- with splitters NULL will be 2 [2 elements, trailing]</li>
<li class="success">countSplitParts -1-2 with splitters NULL will be 2 [2 elements, leading]</li>
<li class="success">countSplitParts 1--2 with splitters NULL will be 2 [2 elements, midde double]</li>
<li class="success">countSplitParts 1-2-3-4 with splitters NULL will be 4 [4 elements]</li>
<li class="success">countSplitParts 2-3_3 with splitters -_ will be 3 [3 elemenst, other splitter]</li>
<li class="success">countSplitParts あsdf with splitters NULL will be 0 [illegal splitter]</li>
<li class="success">stripMultiplePathSlashes string_abc will be string_abc [no slahses]</li>
<li class="success">stripMultiplePathSlashes some/foo will be some/foo [one slash]</li>
<li class="success">stripMultiplePathSlashes some//foo will be some/foo [two slashes]</li>
<li class="success">stripMultiplePathSlashes some///foo will be some/foo [three slashes]</li>
<li class="success">stripMultiplePathSlashes /foo will be /foo [slashes in front]</li>
<li class="success">stripMultiplePathSlashes //foo will be /foo [two slashes in front]</li>
<li class="success">stripMultiplePathSlashes ///foo will be /foo [thee slashes in front]</li>
<li class="success">stripMultiplePathSlashes foo/ will be foo/ [slashes in back]</li>
<li class="success">stripMultiplePathSlashes foo// will be foo/ [two slashes in back]</li>
<li class="success">stripMultiplePathSlashes foo/// will be foo/ [thee slashes in back]</li>
<li class="success">stripMultiplePathSlashes /foo//bar///string/end_times will be /foo/bar/string/end_times [multiple slashes]</li>
<li class="success">stripUTF8BomBytes UTF8BOM.csv will be Asset Type,Epic,File Name
[utf8-bom]</li>
<li class="success">stripUTF8BomBytes UTF8.csv will be Asset Type,Epic,File Name
[utf8]</li>
<li class="success">allCharsInSet $input in abcdef with expected true [find]</li>
<li class="success">allCharsInSet $input in abcdef with expected false [not found]</li>
<li class="success">buildCharStringFromLists all array convert to abc [test a]</li>
<li class="success">buildCharStringFromLists all array convert to abc123 [test b]</li>
<li class="success">buildCharStringFromLists all NULL convert to '' [test c: no params]</li>
<li class="success">buildCharStringFromLists all array convert to '' [test c: empty 1]</li>
<li class="success">buildCharStringFromLists all array convert to abc [test nested]</li>
<li class="success">removeDuplicates make ABCDEFG unqiue to ABCDEFG [test no change]</li>
<li class="success">removeDuplicates make aa unqiue to a [test simple]</li>
<li class="success">removeDuplicates make AaBbCc unqiue to AaBbCc [test keep lower and uppwer case]</li>
<li class="success">removeDuplicates make aabbcc unqiue to abc [test unqiue]</li>
<li class="success">removeDuplicates make あいうえお unqiue to あいうえお [test multibyte no change]</li>
<li class="success">removeDuplicates make ああいいううええおお unqiue to あいうえお [test multibyte]</li>
<li class="success">removeDuplicates make あぁいぃうぅえぇおぉ unqiue to あぁいぃうぅえぇおぉ [test multibyte special]</li>
<li class="success">isValidRegexSimple make /^[A-z]$/ unqiue to true [valid regex]</li>
<li class="success">isValidRegexSimple make /^[A-z]$ unqiue to false [invalid regex A]</li>
<li class="success">isValidRegexSimple make /^[A-z$ unqiue to false [invalid regex B]</li>
<li class="success">parseCharacterRanges array to abcdefghijklmnopqrstuvwxyz [simple a-z]</li>
<li class="success">parseCharacterRanges array to ABCDEFGHIJKLMNOPQRSTUVWXYZ [simple A-Z]</li>
<li class="success">parseCharacterRanges array to 0123456789 [simple 0-9]</li>
<li class="success">parseCharacterRanges array to abcXYZ345 [mixed ranges]</li>
<li class="success">parseCharacterRanges array to abcdefghijklmnopqrstuvwxyz [reverse ranges]</li>
<li class="success">parseCharacterRanges array to abcdefghij [overlapping ranges]</li>
<li class="success">parseCharacterRanges array to abcdefghijklmnopqrstuvwxyz0123 [mixed valid and overlap ranges]</li>
<li class="success">parseCharacterRanges array to abcdf [range without dashes]</li>
<li class="success">parseCharacterRanges array to '' [invalid ranges]</li>
</ul>
<h2>\CoreLibs\Create\Crc64 method tests</h2>
<ul>
<li class="success">generate crc64 for /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Create/files/random_10KB.bin and expecting oMgkUkGrDME= and a0c8245241ab0cc1 [10kb]</li>
<li class="success">generate crc64 for /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Create/files/random_100KB.bin and expecting i9Lpf3Y3D3M= and 8bd2e97f76370f73 [100kb]</li>
<li class="success">generate crc64 for /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Create/files/random_1MB.bin and expecting WqYAirRJ0q8= and 5aa6008ab449d2af [1mb]</li>
<li class="success">generate crc64 for /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Create/files/random_5MB.bin and expecting 9hS5kUxbgR0= and f614b9914c5b811d [5mb]</li>
<li class="success">generate crc64 for /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Create/files/random_10MB.bin and expecting xDmtkk1JhjM= and c439ad924d498633 [10mb]</li>
</ul>
<h2>\CoreLibs\Create\Email method tests</h2>
<ul>
<li class="success">encode email '', name NULL, encoding NULL, folding NULL will be '' [all empty]</li>
<li class="success">encode email test@test.com, name NULL, encoding NULL, folding NULL will be test@test.com [email only]</li>
<li class="success">encode email test@test.com, name Test Name, encoding NULL, folding NULL will be "Test Name" <test@test.com> [email and name]</li>
<li class="success">encode email test@test.com, name 日本語, encoding NULL, folding NULL will be "=?UTF-8?B?5pel5pys6Kqe?=" <test@test.com> [name in mime encoded, default UTF-8]</li>
<li class="success">encode email test@test.com, name 日本語カタカナパ, encoding NULL, folding NULL will be "=?UTF-8?B?5pel5pys6Kqe7722776A7722776F776K776f?=" <test@test.com> [name in mime encoded with half width Katakana, default UTF-8]</li>
<li class="success">encode email test@test.com, name 日本語カタカナパ, encoding UTF-8, folding true will be "=?UTF-8?B?5pel5pys6Kqe44Kr44K/44Kr44OK44OR?=" <test@test.com> [name in mime encoded with half width Katakana, folding on, default UTF-8]</li>
<li class="success">encode email test@test.com, name 日本語, encoding UTF-8, folding NULL will be "=?UTF-8?B?5pel5pys6Kqe?=" <test@test.com> [name in mime encoded, UTF-8 parameter]</li>
<li class="success">encode email test@test.com, name 日本語, encoding ISO-2022-JP, folding NULL will be "=?ISO-2022-JP?B?GyRCRnxLXDhsGyhC?=" <test@test.com> [encoding in ISO-2022-JP]</li>
<li class="success">encode email test@test.com, name 日本語カタカナパ, encoding ISO-2022-JP, folding NULL will be "=?ISO-2022-JP?B?GyRCRnxLXDhsGyhCPz8/Pz8/?=" <test@test.com> [encoding with half width Katakana in ISO-2022-JP]</li>
<li class="success">encode email test@test.com, name 日本語カタカナパ, encoding ISO-2022-JP, folding true will be "=?ISO-2022-JP?B?GyRCRnxLXDhsGyhCPz8/Pz8/?=" <test@test.com> [encoding with half width Katakana, folding on in ISO-2022-JP]</li>
<li class="success">email sending with expected status -1 [all empty, fail -1]</li>
<li class="success">email sending with expected status -2 [missing to entry, fail -2]</li>
<li class="success">email sending with expected status -3 [bad encoding, fail -3]</li>
<li class="success">email sending with expected status 2 [sending email 1]</li>
<li class="success">email sending with expected status 2 [sending email 1, encoded]</li>
<li class="success">email sending with expected status 2 [sending email 1, encoded, with half width katakanata]</li>
<li class="success">email sending with expected status 2 [sending email 1, encoded, with half width katakanata, folding on]</li>
<li class="success">email sending with expected status 2 [sending email 1, encoded subject ISO-2022-JP]</li>
<li class="success">email sending with expected status 2 [sending email 2]</li>
<li class="success">email sending with expected status 2 [sending email 1: dynamic]</li>
<li class="success">email sending with expected status 2 [sending email 1: dynamic encoded]</li>
<li class="success">email sending with expected status 2 [sending email 1: dynamic, to override]</li>
<li class="success">email sending with expected status 2 [sending email 1: dynamic, to override encoded]</li>
<li class="success">email sending with expected status 2 [sending email 3: dynamic, to mixed override]</li>
<li class="success">email sending with expected status 2 [sending email 3: dynamic, to mixed override encoded]</li>
</ul>
<h2>\CoreLibs\Create\Hash method tests</h2>
<ul>
<li class="success">__crc32b Some String Text will be c5c21d91 [hash tests to crc32b reverse]</li>
<li class="success">__sha1Short/__crc32b/sha1short Some String Text will be c5c21d91 (crc32b) and 4d2bc9ba0 (sha1 short) [hash tests to sha1 short]</li>
<li class="success">__hash/hashShort/hash Some String Text with adler32 will be 31aa05f1 [hash tests to adler32]</li>
<li class="success">__hash/hashShort/hash Some String Text with crc32b will be 911dc2c5 [hash tests to crc32b]</li>
<li class="success">__hash/hashShort/hash Some String Text with fnv132 will be 9df444f9 [hash tests to fnv132]</li>
<li class="success">__hash/hashShort/hash Some String Text with fnv1a32 will be 2c5f91b9 [hash tests to fnv1a32]</li>
<li class="success">__hash/hashShort/hash Some String Text with joaat will be 50dab846 [hash tests to joaat]</li>
<li class="success">__hash/hashShort/hash Some String Text with ripemd160 will be aeae3f041b20136451519edd9361570909300342 [hash tests to ripemd160]</li>
<li class="success">__hash/hashShort/hash Some String Text with sha256 will be 9055080e022f224fa835929b80582b3c71c672206fa3a49a87412c25d9d42ceb [hash tests to sha256]</li>
<li class="success">__hashLong/hashLong Some String Text will be aeae3f041b20136451519edd9361570909300342 [Long Hash check: ripemd160]</li>
<li class="success">hash/hashStd Some String Text will be 9055080e022f224fa835929b80582b3c71c672206fa3a49a87412c25d9d42ceb [Long Hash check: sha256]</li>
<li class="success">hash with invalid type</li>
<li class="success">hash hmac test</li>
<li class="success">hash hmac with invalid type</li>
<li class="success">check if crc32b is valid for hash true and hash hmac false [Hash crc32b]</li>
<li class="success">check if adler32 is valid for hash true and hash hmac false [Hash adler32]</li>
<li class="success">check if fnv132 is valid for hash true and hash hmac false [HAsh fnv132]</li>
<li class="success">check if fnv1a32 is valid for hash true and hash hmac false [Hash fnv1a32]</li>
<li class="success">check if joaat is valid for hash true and hash hmac false [Hash: joaat]</li>
<li class="success">check if ripemd160 is valid for hash true and hash hmac true [Hash: ripemd160]</li>
<li class="success">check if sha256 is valid for hash true and hash hmac true [Hash: sha256]</li>
<li class="success">check if invalid is valid for hash false and hash hmac false [Hash: invalid]</li>
<li class="success">generate immutable hash for array with result 064f01fe [Empty array]</li>
<li class="success">generate immutable hash for array with result 78f40899 [Simple array]</li>
<li class="success">generate immutable hash for array with result ccec0f5b [flat array a]</li>
<li class="success">generate immutable hash for array with result c6040f5b [flat array b]</li>
<li class="success">generate immutable hash for array with result c6040f5b [flat array b, not sorted]</li>
<li class="success">generate immutable hash for array with result 01f11355 [key array a]</li>
<li class="success">generate immutable hash for array with result 04911355 [key array a, not sorted]</li>
<li class="success">generate immutable hash for array with result 01f11355 [key array b]</li>
<li class="success">generate immutable hash for array with result 01f11355 [key array b, not sorted]</li>
<li class="success">generate immutable hash for array with result d8de1565 [complex nested array]</li>
</ul>
<h2>\CoreLibs\Create\RandomKey method tests</h2>
<ul>
<li class="success">randomKeyGen use NULL key length 4 [default key length, default char set]</li>
<li class="success">randomKeyGen use -1 key length 4 [set -1 key length, default char set]</li>
<li class="success">randomKeyGen use -1 key length 4 [set 0 key length, default char set]</li>
<li class="success">randomKeyGen use 300 key length 4 [set too large key length, default char set]</li>
<li class="success">randomKeyGen use 6 key length 6 [set override key lenght, default char set]</li>
<li class="success">randomKeyGen use 4 key length 4 [default key length, different char set A]</li>
<li class="success">randomKeyGen use 16 key length 16 [different key length, different char set B]</li>
</ul>
<h2>\CoreLibs\Create\Session method tests</h2>
<ul>
<li class="success">startSession sessionNameParameter name for $type will be sessionNameParameter (error: $expected_error) [session parameter]</li>
<li class="success">startSession sessionNameGlobals name for $type will be sessionNameGlobals (error: $expected_error) [session globals]</li>
<li class="success">startSession sessionNameAutoWriteClose name for $type will be sessionNameAutoWriteClose (error: $expected_error) [auto write close]</li>
<li class="success">create session TEST_EXCEPTION with exception RuntimeException (1) [not cli]</li>
<li class="success">checkValidSessionName abc seessionn name is true [valid name]</li>
<li class="success">checkValidSessionName something-abc-123 seessionn name is true [valid name longer]</li>
<li class="success">checkValidSessionName abc#abc seessionn name is false [invalid name]</li>
<li class="success">checkValidSessionName 123 seessionn name is false [only numbers]</li>
<li class="success">checkValidSessionName abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz seessionn name is false [longer than 128 chars]</li>
<li class="success">checkValidSessionName '' seessionn name is false [too short]</li>
<li class="defect">set/get/isset/unset foo with bar is bar (NULL) [test]</li>
<li class="defect">set/get/isset/unset 123 with bar is bar (UnexpectedValueException) [int key test]</li>
<li class="defect">set/get/isset/unset array with array is array (NULL) [array values]</li>
<li class="defect">setMany/getMany/unsetMany array is array (NULL) [valid set]</li>
<li class="defect">setMany/getMany/unsetMany array is array (UnexpectedValueException) [invalid entry]</li>
<li class="defect">unsetAllS test</li>
</ul>
<h2>\CoreLibs\Create\Uids method tests</h2>
<ul>
<li class="success">uuidv4 check that return is matching regex []</li>
<li class="success">uniqId 1 will be length 4 (Force NULL) [too short]</li>
<li class="success">uniqId 10 will be length 10 (Force NULL) [valid length: 10]</li>
<li class="success">uniqId 9 will be length 8 (Force NULL) [valid length: 9, auto length]</li>
<li class="success">uniqId 9 will be length 9 (Force true) [valid length: 9, force length]</li>
<li class="success">uniqId 512 will be length 512 (Force NULL) [very long: 512]</li>
<li class="success">uniqId md5 will be length 32 (Force NULL) [md5 hash]</li>
<li class="success">uniqId sha256 will be length 64 (Force NULL) [sha256 hash]</li>
<li class="success">uniqId ripemd160 will be length 40 (Force NULL) [ripemd160 hash]</li>
<li class="success">uniqId adler32 will be length 8 (Force NULL) [adler32 hash]</li>
<li class="success">uniqId sha3-512 will be length 64 (Force NULL) [not in list, set default length]</li>
<li class="success">uniqId NULL will be length 64 (Force NULL) [default hash not set]</li>
<li class="success">uniqId iamnotavalidhash will be length 64 (Force NULL) [invalid name]</li>
<li class="success">uniqId 64 will be length 64 (Force NULL) [auto: 64]</li>
<li class="success">uniqId ripemd160 will be length 40 (Force NULL) [auto: ripemd160]</li>
<li class="success">uniqId adler32 will be length 8 (Force NULL) [auto: adler32]</li>
<li class="success">uniqId use DEFAULT_HASH set invalidhash with length 64 [0]</li>
<li class="success">uniqIdShort will be length 8 [0]</li>
<li class="success">uniqIdLong will be length 40 [uniq id long: ripemd160]</li>
</ul>
<h2>\CoreLibs\Extended\ArrayIO method tests for extended DB interface</h2>
<ul>
<li class="defect">DB\Extended\ArrayIO Class tests</li>
</ul>
<h2>\CoreLibs\DB\IO method tests for SQL\PgSQL</h2>
<ul>
<li class="success">test db version string return matching retex</li>
<li class="success">test db version numeric return matching retex</li>
<li class="success">test db version parameters are returned as array</li>
<li class="success">Version Info client matches as /^\d+\.\d+/ [client]</li>
<li class="success">Version Info session_authorization matches as /^\w+$/ [session authorization]</li>
<li class="success">Version Info non_existing matches as /^$/ [test non existing]</li>
<li class="success">Version =13.6.0 compares as true [compare = ok]</li>
<li class="success">Version =9.2.0 compares as false [compare = bad]</li>
<li class="success">Version <99.0.0 compares as true [compare < ok]</li>
<li class="success">Version <9.2.0 compares as false [compare < bad]</li>
<li class="success">Version <=99.0.0 compares as true [compare <= ok a]</li>
<li class="success">Version <=13.6.0 compares as true [compare <= ok b]</li>
<li class="success">Version <=9.2.0 compares as false [compare <= false]</li>
<li class="success">Version >9.2.0 compares as true [compare > ok]</li>
<li class="success">Version >99.2.0 compares as false [compare > bad]</li>
<li class="success">Version >=13.6.0 compares as true [compare >= ok a]</li>
<li class="success">Version >=9.2.0 compares as true [compare >= ok b]</li>
<li class="success">Version >=99.0.0 compares as false [compare >= bad]</li>
<li class="success">Connection will be $expected [invalid connection]</li>
<li class="success">Connection will be $expected [valid connection]</li>
<li class="success">Set and Get Debug flag</li>
<li class="success">Set max query call with NULL out with true and 20 (Warning: ''/Error: '') [set default]</li>
<li class="success">Set max query call with -1 out with true and -1 (Warning: 50/Error: '') [set to -1 with warning]</li>
<li class="success">Set max query call with 0 out with false and 20 (Warning: ''/Error: 51) [set to 0 with error]</li>
<li class="success">Set max query call with -2 out with false and 20 (Warning: ''/Error: 51) [set to -2 with error]</li>
<li class="success">Set max query call with 10 out with true and 10 (Warning: ''/Error: '') [set to valid value]</li>
<li class="success">Get settings for connection valid [DB Connection: valid]</li>
<li class="success">Get settings for connection valid_with_encoding_utf8 [DB Connection: valid_with_encoding_utf8]</li>
<li class="success">Get settings for connection valid_no_schema [DB Connection: valid_no_schema]</li>
<li class="success">Get settings for connection invalid [DB Connection: invalid]</li>
<li class="success">Have t and convert (false) to true [source "t" to true]</li>
<li class="success">Have t and convert (NULL) to true [source "t" to true null flag]</li>
<li class="success">Have true and convert (false) to true [source "true" to true]</li>
<li class="success">Have f and convert (false) to false [source "f" to false]</li>
<li class="success">Have false and convert (false) to false [source "false" to false]</li>
<li class="success">Have something and convert (false) to true [source anything to true]</li>
<li class="success">Have '' and convert (false) to false [source empty to false]</li>
<li class="success">Have true and convert (true) to t [source bool true to "t"]</li>
<li class="success">Have false and convert (true) to f [source bool false to "f"]</li>
<li class="success">Have 41 years 9 mons 18 days and convert (false) to 41 years 9 mons 18 days [interval a]</li>
<li class="success">Have 41 years 9 mons 18 days and convert (NULL) to 41 years 9 mons 18 days [interval a null micro time]</li>
<li class="success">Have 41 years 9 mons 18 days 12:31:11 and convert (false) to 41 years 9 mons 18 days 12h 31m 11s [interval a-1]</li>
<li class="success">Have 41 years 9 mons 18 days 12:31:11.87418 and convert (false) to 41 years 9 mons 18 days 12h 31m 11s [interval a-2]</li>
<li class="success">Have 41 years 9 mons 18 days 12:31:11.87418 and convert (true) to 41 years 9 mons 18 days 12h 31m 11s 87418ms [interval a-2-1]</li>
<li class="success">Have 41 years 9 mons 18 days 12:00:11 and convert (false) to 41 years 9 mons 18 days 12h 11s [interval a-3]</li>
<li class="success">Have 1218 days and convert (false) to 1218 days [interval b]</li>
<li class="success">Have 1 year 1 day and convert (false) to 1 year 1 day [interval c]</li>
<li class="success">Have 12:00:05 and convert (false) to 12h 5s [interval d]</li>
<li class="success">Have 00:00:00.12345 and convert (true) to 12345ms [interval e]</li>
<li class="success">Have 00:00:00 and convert (true) to 0s [interval e-1]</li>
<li class="success">Have -41 years 9 mons 18 days 00:05:00 and convert (false) to -41 years 9 mons 18 days 5m [interval a (negative)]</li>
<li class="success">Input array string {1,2,3,"4 this is shit"} to array [array 1]</li>
<li class="success">Input array string {{1,2,3},{4,5,6}} to array [array 2]</li>
<li class="success">Input array string {{{1,2},{3}},{{4},{5,6}}} to array [array 3]</li>
<li class="success">Input array string {dfasdf,"qw,,e{q\"we",'qrer'} to array [array 4]</li>
<li class="success">strip assoc non string entries from return [empty]</li>
<li class="success">strip assoc non string entries from return [int only]</li>
<li class="success">strip assoc non string entries from return [mixed]</li>
<li class="success">strip assoc non string entries from return [key only]</li>
<li class="success">Input string Foo Bar to $expected [string normal]</li>
<li class="success">Input string Foo '" Bar to $expected [string quotes]</li>
<li class="success">Input string Foo \ Bar to $expected [string backslash]</li>
<li class="success">Input bytea '' to \x [standard empty string]</li>
<li class="success">Input bytea ""9f8a!1012938123712378a../%('%)"!"#0"#$%'"#$input"#$input"#0$input"#$ to \x2222396638612131303132393338313233373132333738612e2e2f2528272529222122233022232425272223243030222324302223302430222324 [random values]</li>
<li class="success">Input bytea string d to \x737472696e672064 [random text]</li>
<li class="success">Input value 1 as i to 1 [integer value]</li>
<li class="success">Input value za as i to 0 [bad integer value]</li>
<li class="success">Input value '' as i to NULL [empty integer value]</li>
<li class="success">Input value NULL as i to NULL [null integer value]</li>
<li class="success">Input value 1.1 as f to 1.1 [float value]</li>
<li class="success">Input value za as f to 0 [bad float value]</li>
<li class="success">Input value '' as f to NULL [empty float value]</li>
<li class="success">Input value NULL as f to NULL [null float value]</li>
<li class="success">Input value string value as t to 'string value' [string value]</li>
<li class="success">Input value '' as t to '' [empty string value]</li>
<li class="success">Input value NULL as t to NULL [null string value]</li>
<li class="success">Input value string literal as tl to 'string literal' [string value literal]</li>
<li class="success">Input value '' as tl to '' [empty string value literal]</li>
<li class="success">Input value NULL as tl to NULL [null string value literal]</li>
<li class="success">Input value string d as by to \x737472696e672064 [string value d]</li>
<li class="success">Input value '' as by to NULL [empty string value d]</li>
<li class="success">Input value NULL as by to NULL [null string value d]</li>
<li class="success">Input value string d as dl to 'string d' [string value literal d]</li>
<li class="success">Input value '' as dl to NULL [empty string value literal d]</li>
<li class="success">Input value NULL as dl to NULL [null string value literal d]</li>
<li class="success">Input value true as b to 't' [bool true value]</li>
<li class="success">Input value false as b to 'f' [bool false value]</li>
<li class="success">Input value '' as b to NULL [empty bool value]</li>
<li class="success">Input value NULL as b to NULL [null bool value]</li>
<li class="success">Input value 1 as i2 to 1 [integer2 value]</li>
<li class="success">Input value za as i2 to 0 [bad integer2 value]</li>
<li class="success">Input value '' as i2 to 0 [empty integer2 value]</li>
<li class="success">Input value NULL as i2 to 0 [null integer2 value]</li>
<li class="success">Check table test_meta in schema '' with array [simple table]</li>
<li class="success">Check table test_meta in schema NULL with array [simple table null schema]</li>
<li class="success">Check table non_existing in schema public with false [table does not exist]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES (NOW()) and pk '' with object (Warning: ''/Error: '') [table with pk insert]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES (NOW()) and pk NULL with object (Warning: ''/Error: '') [table with pk insert null]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_varchar) VALUES () and pk NULL with object (Warning: ''/Error: '') [table with pk insert params]</li>
<li class="success">dbExec INSERT INTO table_without_primary_key (row_date) VALUES (NOW()) and pk '' with object (Warning: ''/Error: '') [table with no pk insert]</li>
<li class="success">dbExec INSERT INTO table_without_primary_key (row_varchar) VALUES () and pk NULL with object (Warning: ''/Error: '') [table with no pk insert params]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES(NOW()), (NOW()), (NOW()), (NOW()) and pk '' with object (Warning: 32/Error: '') [table with pk insert multile]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES (NOW()) and pk NULL with object (Warning: ''/Error: '') [table with pk insert and NULL pk name]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES (NOW()) and pk table_with_primary_key_id with object (Warning: ''/Error: '') [table with pk insert and pk name]</li>
<li class="success">dbExec UPDATE table_with_primary_key SET row_date = NOW() and pk '' with object (Warning: ''/Error: '') [table with pk update]</li>
<li class="success">dbExec SELECT * FROM table_with_primary_key and pk '' with object (Warning: ''/Error: '') [table with pk select]</li>
<li class="success">dbExec '' and pk '' with false (Warning: ''/Error: 11) [no query set]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_varchar) VALUES (, ) and pk NULL with false (Warning: ''/Error: 23) [wrong params count]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_varchar) VALUES (, ) and pk NULL with false (Warning: ''/Error: 23) [wrong params count, null params]</li>
<li class="success">dbExec SELECT row_date FROM table_with_primary_key and pk '' with object (Warning: ''/Error: 30) [same query run too many times]</li>
<li class="success">dbExec INVALID and pk '' with false (Warning: ''/Error: 13) [invalid query]</li>
<li class="success">dbExec INSERT INTO table_with_primary_key (row_date) VALUES (NOW()) RETURNING invalid and pk '' with false (Warning: ''/Error: 13) [invalid returning]</li>
<li class="success">dbReturnRow SELECT row_int, uid FROM table_with_primary_key WHERE uid = 'A' and assoc NULL with array (Warning: ''/Error: '') [valid select]</li>
<li class="success">dbReturnRow SELECT row_int, uid FROM table_with_primary_key WHERE uid = 'A' and assoc false with array (Warning: ''/Error: '') [valid select, assoc only false]</li>
<li class="success">dbReturnRow SELECT row_int, uid FROM table_with_primary_key WHERE uid = 'A' and assoc true with array (Warning: ''/Error: '') [valid select, assoc only true]</li>
<li class="success">dbReturnRow SELECT row_int, uid FROM table_with_primary_key WHERE uid = and assoc true with array (Warning: ''/Error: '') [valid select, params]</li>
<li class="success">dbReturnRow SELECT row_int, uid FROM table_with_primary_key WHERE uid = and assoc true with false (Warning: ''/Error: 23) [wrong params count]</li>
<li class="success">dbReturnRow '' and assoc NULL with false (Warning: ''/Error: 11) [empty select]</li>
<li class="success">dbReturnRow INSERT INTO table_with_primary_key (row_int, uid) VALUES (1, 'A') and assoc NULL with false (Warning: ''/Error: 17) [insert query]</li>
<li class="success">dbReturnArray SELECT row_int, uid FROM table_with_primary_key and assoc NULL with array (Warning: ''/Error: '') [valid select]</li>
<li class="success">dbReturnArray SELECT row_int, uid FROM table_with_primary_key and assoc false with array (Warning: ''/Error: '') [valid select, assoc ]</li>
<li class="success">dbReturnArray SELECT row_int, uid FROM table_with_primary_key WHERE uid = and assoc true with array (Warning: ''/Error: '') [valid select, params]</li>
<li class="success">dbReturnArray SELECT row_int, uid FROM table_with_primary_key WHERE uid = and assoc true with false (Warning: ''/Error: 23) [wrong params count]</li>
<li class="success">dbReturnArray '' and assoc NULL with false (Warning: ''/Error: 11) [empty select]</li>
<li class="success">dbReturnArray INSERT INTO table_with_primary_key (row_int, uid) VALUES (1, 'A'), (2, 'B') and assoc NULL with false (Warning: ''/Error: 17) [insert query]</li>
<li class="success">dbReturn Read First true only and cache NULL and assoc NULL with (Warning: ''/Error: '') [valid select, default cache settings (NO_CACHE)]</li>
<li class="success">dbReturn Read First true only and cache 0 and assoc true with (Warning: ''/Error: '') [valid select, use cache, assoc only]</li>
<li class="success">dbReturn Read First true only and cache 1 and assoc true with (Warning: ''/Error: '') [valid select, read new, assoc only]</li>
<li class="success">dbReturn Read First true only and cache 2 and assoc true with (Warning: ''/Error: '') [valid select, clear cache, assoc only]</li>
<li class="success">dbReturn Read First true only and cache 3 and assoc true with (Warning: ''/Error: '') [valid select, no cache, assoc only]</li>
<li class="success">dbReturn Read First true only and cache 3 and assoc true with (Warning: ''/Error: '') [valid select params, no cache, assoc only]</li>
<li class="success">dbReturn Read First true only and cache NULL and assoc NULL with (Warning: ''/Error: 11) [empty select error]</li>
<li class="success">dbReturn Read First true only and cache NULL and assoc NULL with (Warning: ''/Error: 23) [params count wrong]</li>
<li class="success">dbReturn Read First true only and cache NULL and assoc NULL with (Warning: ''/Error: 17) [insert query error]</li>
<li class="success">dbReturn Read First false only and cache NULL and assoc NULL with (Warning: ''/Error: '') [valid select, full read, default cache settings (NO CACHE)]</li>
<li class="success">dbReturn Read First false only and cache 0 and assoc NULL with (Warning: ''/Error: '') [valid select, full read, USE CACHE]</li>
<li class="success">dbReturn Read First false only and cache 1 and assoc NULL with (Warning: ''/Error: '') [valid select, full read, READ NEW]</li>
<li class="success">dbReturn Read First false only and cache 2 and assoc NULL with (Warning: ''/Error: '') [valid select, full read, CLEAR CACHE]</li>
<li class="success">dbReturn Read First false only and cache 3 and assoc NULL with (Warning: ''/Error: '') [valid select, full read, NO CACHE]</li>
<li class="success">prepared query insert with result (warning ''/error '') and result (warning ''/error '') [prepare query insert]</li>
<li class="success">prepared query update with result (warning ''/error '') and result (warning ''/error '') [prepare query update]</li>
<li class="success">prepared query select with result (warning ''/error '') and result (warning ''/error '') [prepare select query]</li>
<li class="success">prepared query select_noparam with result (warning ''/error '') and result (warning ''/error '') [prepare select query no parameter]</li>
<li class="success">prepared query '' with false (warning ''/error 25) and false (warning ''/error 25) [empty statement]</li>
<li class="success">prepared query Empty Query with false (warning ''/error 11) and false (warning ''/error 24) [empty query]</li>
<li class="success">prepared query double with true (warning 20/error '') and result (warning ''/error '') [prepare query with same statement name]</li>
<li class="success">prepared query double_error with false (warning ''/error 26) and '' (warning ''/error '') [prepare query with same statement name, different query]</li>
<li class="success">prepared query wrong_param_count with result (warning ''/error '') and false (warning ''/error 23) [wrong parmeter count]</li>
<li class="success">prepared query read with pk_name expect error id '' [no error]</li>
<li class="success">prepared query '' with '' expect error id 101 [statement name empty]</li>
<li class="success">prepared query read with '' expect error id 102 [key empty]</li>
<li class="success">prepared query read with invalid expect error id 102 [key invalid]</li>
<li class="success">prepared query invalid with pk_name expect error id 103 [statement name not found]</li>
<li class="success">Check prepared test_stm_a ('') status is false [empty statement pararm]</li>
<li class="success">Check prepared test_stm_b (other_name) status is 0 [different stm_name]</li>
<li class="success">Check prepared test_stm_c (test_stm_c) status is 1 [same stm_name]</li>
<li class="success">Check prepared test_stm_d (test_stm_d) status is 2 [same stm_name and query]</li>
<li class="success">Check prepared test_stm_e (test_stm_e) status is 1 [same stm_name and different query]</li>
<li class="success">Check prepared test_stm_f (test_stm_f) status is 2 [insert query test]</li>
<li class="success">set schema NULL on valid with true (error '') and get public/public [schema get check only]</li>
<li class="success">set schema public on valid with true (error '') and get public/public [new schema set]</li>
<li class="success">set schema public on valid_no_schema with true (error '') and get public/public [no schema set, set new schema]</li>
<li class="success">set schema invalid on valid with false (error 71) and get public/public [try to set empty schema]</li>
<li class="success">set schema testschema on valid with true (error '') and get testschema/testschema [try to set new valid schema]</li>
<li class="success">error 0 for type error with 51 [trigger error]</li>
<li class="success">error -1 for type warning with 50 [trigger warning]</li>
<li class="success">Set encoding on valid to '' expect false and UTF8 [default set no encoding]</li>
<li class="success">Set encoding on valid to ShiftJIS expect true and SJIS [set to Shift JIS]</li>
<li class="success">Set encoding on valid to Invalid expect false and UTF8 [set to Invalid]</li>
<li class="success">Set encoding on valid to '' expect false and UTF8 [set to empty]</li>
<li class="success">Check encoding on valid with SJIS [convert from UTF8 to SJIS]</li>
<li class="success">Check returning pk '' with NULL [normal all auto]</li>
<li class="success">Check returning pk '' with NULL [table without primary key]</li>
<li class="success">Check returning pk '' with table_with_primary_key_id [normal, with pk_name]</li>
<li class="success">Check returning pk RETURNING table_with_primary_key_id with table_with_primary_key_id [normal, with returning]</li>
<li class="success">Check returning cursor using NULL with NULL and NULL [single insert (PK)]</li>
<li class="success">Check returning cursor using NULL with NULL and NULL [single insert (PK), heredoc string]</li>
<li class="success">Check returning cursor using NULL with NULL and NULL [dobule insert (PK)]</li>
<li class="success">Check returning cursor using NULL with NULL and NULL [single insert (No PK)]</li>
<li class="success">Check returning cursor using NULL with NULL and NULL [single insert (No PK), heredoc string]</li>
<li class="success">Check convert type works</li>
<li class="success">Check check rows: 3 and cols: 4 [select data]</li>
<li class="success">Check check rows: 3 and cols: 0 [insert data]</li>
<li class="success">Check check rows: 1 and cols: 0 [update data]</li>
<li class="success">Check check rows: 1 and cols: 4 [select data, params]</li>
<li class="success">Query replacement count test [one place holder]</li>
<li class="success">Query replacement count test [one place holder, json call]</li>
<li class="success">Query replacement count test [one place holder, <> compare]</li>
<li class="success">Query replacement count test [one place holder, named]</li>
<li class="success">Query replacement count test [no replacement]</li>
<li class="success">Query replacement count test [insert]</li>
<li class="success">Query replacement count test [update]</li>
<li class="success">Query replacement count test [multiple, multline]</li>
<li class="success">Query replacement count test [two digit numbers]</li>
<li class="success">Query replacement count test [things in brackets]</li>
<li class="success">Query replacement count test [number compare]</li>
<li class="success">Query replacement count test [comments in insert]</li>
<li class="success">Query replacement count test [comment in update]</li>
<li class="success">Query replacement count test [a complete set of possible]</li>
<li class="success">Query replacement count test [all the same numbered]</li>
<li class="success">Query replacement count test [update with case]</li>
<li class="success">Query replacement count test [select with case]</li>
<li class="success">Query replacement count test [text string, with $ placehoders that could be seen as $$ string]</li>
<li class="success">Query replacement count test [text string, with $ placehoders are in $$ strings]</li>
<li class="success">Query replacement count test [text string, with escaped quote]</li>
<li class="success">Query replacement test [select, no change]</li>
<li class="success">Query replacement test [select, params ?]</li>
<li class="success">Query replacement test [select, params :]</li>
<li class="success">Query Replace error tests</li>
<li class="success">async query SELECT pg_sleep(1) with true (warning ''/error '') and true/result (warning ''/error '') [run simple async query]</li>
<li class="success">async query SELECT pg_sleep() with true (warning ''/error '') and true/result (warning ''/error '') [run simple async query, params]</li>
<li class="success">async query SELECT pg_sleep() with false (warning ''/error 23) and false/false (warning ''/error 42) [wrong params count]</li>
<li class="success">async query '' with false (warning ''/error 11) and false/false (warning ''/error 42) [no async query running]</li>
</ul>
<h2>\CoreLibs\Debug\FileWriter method tests</h2>
<ul>
<li class="success">fsetFolder test correct return code</li>
<li class="success">fsetFilename some_valid_name.log will match true [valid log file name]</li>
<li class="success">fsetFilename log/debug.log will match false [file name contains path]</li>
<li class="success">fsetFilename invalid name will match false [invalid log file name]</li>
<li class="success">fdebug write test string with enter NULL and will be true and written test string
[debug with default enter]</li>
<li class="success">fdebug write test string with enter false and will be true and written test string [debug with no enter]</li>
</ul>
<h2>\CoreLibs\Debug\LoggingLegacy method tests</h2>
<ul>
<li class="success">init test [log folder set]</li>
<li class="success">init test [nothing set]</li>
<li class="success">init test [no options set, constant set [DEPRECATED]]</li>
<li class="success">init test [standard test set]</li>
<li class="success">log id set/get tests [no log id set]</li>
<li class="success">log id set/get tests [set log id manually]</li>
<li class="success">log id set/get tests [set log id via options]</li>
<li class="success">log id set/get tests [set log id via globals [DEPRECATED]]</li>
<li class="success">log id set/get tests [set log id via constant [DEPRECATED]]</li>
<li class="success">log id set/get tests [invalid log id]</li>
<li class="success">set/get all log level debug with flag true [debug all true]</li>
<li class="success">set/get all log level echo with flag true [echo all true]</li>
<li class="success">set/get all log level print with flag true [print all true]</li>
<li class="success">set/get all log level invalud with flag true [set invalid level]</li>
<li class="success">set/get log level debug to on check with NULL [set debug on for level A,B,C and check full set]</li>
<li class="success">set/get log level debug to off check with A [set debug off for level A,B,C and check A]</li>
<li class="success">set/get log level debug to off check with NULL [set debug off for level A, B to false and check all]</li>
<li class="success">set/get log level invalid to '' check with NULL [set invalid level]</li>
<li class="success">set/get log level print to invalid check with NULL [set invalid on flag]</li>
<li class="success">set/get log level print to off check with NULL [missing debug level array]</li>
<li class="success">set/get log level print to on check with C [set level but check no exisitng]</li>
<li class="success">set/get log per level with true [level set true]</li>
<li class="success">set/get log per class with true [class set true]</li>
<li class="success">set/get log per page with true [page set true]</li>
<li class="success">set/get log per run with true [run set true]</li>
<li class="success">set/get log per invalid with true [set invalid type]</li>
<li class="success">set/get log file date to true [0]</li>
<li class="success">set/get log file date to false [1]</li>
<li class="success">check prAr array to string conversion [simple array]</li>
<li class="success">check prAr array to string conversion [empty array]</li>
<li class="success">check prAr array to string conversion [nested array]</li>
<li class="success">check prBl true (NULL/NULL) is expected NULL [true bool default]</li>
<li class="success">check prBl false (NULL/NULL) is expected NULL [false bool default]</li>
<li class="success">check prBl true (ok/not ok) is expected not ok [true bool override]</li>
<li class="success">check prBl false (ok/not ok) is expected not ok [false bool override]</li>
<li class="success">check debug flow: true [A debug: on, print: on, echo: on]</li>
<li class="success">check debug flow: true [B debug: on, print: off, echo: on]</li>
<li class="success">check debug flow: true [C debug: on, print: on, echo: off]</li>
<li class="success">check debug flow: false [D debug: on, print: off, echo: off]</li>
<li class="success">check debug flow: false [E debug: off, print: off, echo: off]</li>
<li class="success">per run log id set test: option: true, override: false [option set]</li>
<li class="success">per run log id set test: option: false, override: false [direct set]</li>
<li class="success">per run log id set test: option: false, override: true [override set]</li>
<li class="success">per run log id set test: option: false, override: true [option and override set]</li>
</ul>
<h2>\CoreLibs\Debug\MemoryUsage method tests</h2>
<ul>
<li class="success">memoryUsage with test, raw memory NULL [test normal]</li>
</ul>
<h2>\CoreLibs\Debug\RunningTime method tests</h2>
<ul>
<li class="success">hrRunningTime with NULL matching /^\d{4}\.\d{1,}$/ [default time]</li>
<li class="success">hrRunningTime with ns matching /^\d{10}$/ [nanoseconds]</li>
<li class="success">hrRunningTime with ys matching /^\d{7}\.\d{1,}$/ [microseconds]</li>
<li class="success">hrRunningTime with ms matching /^\d{4}\.\d{1,}$/ [milliseconds]</li>
<li class="success">hrRunningTime with s matching /^\d{1}\.\d{4,}$/ [seconds]</li>
<li class="success">hrRunningTime with invalid matching /^\d{4}\.\d{1,}$/ [invalid fallback to ms]</li>
<li class="success">runningTime matching return /^\d{1,}\.\d{1,}$/ and start /^Start: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} 0\.\d{8}, $/ end /^Start: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} 0\.\d{8}, End: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} 0\.\d{8}, Run: \d{1,}\.\d{1,} s$/ [run time test]</li>
</ul>
<h2>\CoreLibs\Debug\Support method tests</h2>
<ul>
<li class="success">printTime test with NULL and match to regex [default microtime]</li>
<li class="success">printTime test with -1 and match to regex [microtime -1]</li>
<li class="success">printTime test with 0 and match to regex [microtime 0]</li>
<li class="success">printTime test with 4 and match to regex [microtime 4]</li>
<li class="success">printAr/printArray array will be <pre>Array
(
)
</pre> [empty array]</li>
<li class="success">printAr/printArray array will be <pre>Array
(
[0] => a
[1] => b
)
</pre> [simple array]</li>
<li class="success">printBool true will be true [true input default]</li>
<li class="success">printBool false will be false [false input default]</li>
<li class="success">printBool false will be <b>param test</b>: false [false input param name]</li>
<li class="success">printBool true will be <b>param test</b>: ok [true input param name, true override]</li>
<li class="success">printBool false will be <b>param test</b>: not [false input param name, true override, false override]</li>
<li class="success">printToString NULL with NULL will be NULL [null]</li>
<li class="success">printToString a string with NULL will be a string [string]</li>
<li class="success">printToString a string with <> & with true will be a string with &lt;&gt; &amp; [string with html chars, encode]</li>
<li class="success">printToString a string with <> & with NULL will be a string with <> & [string with html chars]</li>
<li class="success">printToString 1234 with NULL will be 1234 [a number]</li>
<li class="success">printToString 1234.5678 with NULL will be 1234.5678 [a float number]</li>
<li class="success">printToString true with NULL will be TRUE [bool true]</li>
<li class="success">printToString false with NULL will be FALSE [bool false]</li>
<li class="success">printToString array with NULL will be <pre>Array
(
[0] => a
[1] => b
)
</pre> [an array default]</li>
<li class="success">printToString array with true will be Array
(
[0] => a
[1] => b
)
[an array, no html]</li>
<li class="success">printToString resource with NULL will be /^Resource id #\d+$/ [a resource]</li>
<li class="success">printToString CoreLibs\Debug\Support with NULL will be CoreLibs\Debug\Support [an object]</li>
<li class="success">dump/exportVar string with NULL will be string(6) "string"
/ <pre>'string'</pre> [string]</li>
<li class="success">dump/exportVar string with true will be string(6) "string"
/ 'string' [string, no html]</li>
<li class="success">dump/exportVar 6 with NULL will be int(6)
/ <pre>6</pre> [int]</li>
<li class="success">dump/exportVar 1.6 with NULL will be float(1.6)
/ <pre>1.6</pre> [float]</li>
<li class="success">dump/exportVar true with NULL will be bool(true)
/ <pre>true</pre> [bool]</li>
<li class="success">dump/exportVar array with NULL will be array(2) {
[0]=>
string(6) "string"
[1]=>
bool(true)
}
/ <pre>array (
0 => 'string',
1 => true,
)</pre> [array]</li>
<li class="success">getCallerFileLine check based on regex .../Framework/TestCase.php:\d+ []</li>
<li class="success">getCallerMethod check if it returns testGetCallerMethod [0]</li>
<li class="success">getCallerMethodList check if it returns array [0]</li>
<li class="success">getCallStack check if it returns data []</li>
<li class="success">getCallerClass check if it returns tests\CoreLibsDebugSupportTest [0]</li>
<li class="success">getCallerTopLevelClass check if it returns PHPUnit\TextUI\Command [0]</li>
<li class="success">getCallerClassMethod check if it returns tests\CoreLibsDebugSupportTest->testGetCallerClassMethod [0]</li>
<li class="success">debugString NULL with replace NULL and html NULL will be - [null string, default]</li>
<li class="success">debugString '' with replace ... and html NULL will be ... [empty string, ... replace]</li>
<li class="success">debugString some string with replace NULL and html NULL will be some string [filled string]</li>
<li class="success">debugString a string with <> & with replace - and html true will be a string with &lt;&gt; &amp; [string with html chars, encode]</li>
<li class="success">debugString a string with <> & with replace - and html NULL will be a string with <> & [string with html chars]</li>
</ul>
<h2>\CoreLibs\Get\DotEnv method tests</h2>
<ul>
<li class="success">Read _ENV file from NULL / NULL with expected status: 3 and chmod NULL [default]</li>
<li class="success">Read _ENV file from /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Get/dotenv / cannot_read.env with expected status: 2 and chmod 100000 [cannot open file]</li>
<li class="success">Read _ENV file from /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Get/dotenv / empty.env with expected status: 1 and chmod 100664 [empty file]</li>
<li class="success">Read _ENV file from /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Get/dotenv / test.env with expected status: 0 and chmod 100664 [override all]</li>
<li class="success">Read _ENV file from /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Get/dotenv / NULL with expected status: 0 and chmod NULL [override directory]</li>
</ul>
<h2>\CoreLibs\Get\System method tests</h2>
<ul>
<li class="success">fileUploadErrorMessage 1 error matches The uploaded file exceeds the upload_max_filesize directive in php.ini [upload err init size]</li>
<li class="success">fileUploadErrorMessage 2 error matches The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form [upload err from size]</li>
<li class="success">fileUploadErrorMessage 3 error matches The uploaded file was only partially uploaded [upload err partial]</li>
<li class="success">fileUploadErrorMessage 4 error matches No file was uploaded [upload err no file]</li>
<li class="success">fileUploadErrorMessage 6 error matches Missing a temporary folder [upload err no tmp dir]</li>
<li class="success">fileUploadErrorMessage 7 error matches Failed to write file to disk [upload err cant write]</li>
<li class="success">fileUploadErrorMessage 8 error matches File upload stopped by extension [upload err extension]</li>
<li class="success">fileUploadErrorMessage 99999 error matches Unknown upload error [unkown error]</li>
<li class="success">getHostName NULL must match NOHOST:0 [original set]</li>
<li class="success">getHostName foo.org must match foo.org:80 [override set no port]</li>
<li class="success">getHostName foo.org:443 must match foo.org:443 [override set with port]</li>
<li class="success">getPageName NULL will match 0: phpunit, 1: phpunit, 2: /^(\/?.*\/?)?(vendor\/bin|tools)\/phpunit$/ [original set]</li>
<li class="success">getPageName /some/path/to/file.txt will match 0: file.txt, 1: file, 2: /some/path/to/file.txt [some path with extension]</li>
<li class="success">getIpAddresses check</li>
</ul>
<h2>\CoreLibs\Language\GetLocale method tests</h2>
<ul>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: ja_JP.UTF-8, session char: UTF-8 [all session vars set]</li>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: NULL, session char: NULL [no session set, only parameters]</li>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: ja, session char: UTF-8 [all session vars set, short lang]</li>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: de_CH.UTF-8@euro, session char: admin [long locale, domain, encoding params, no sessions]</li>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: ja, session char: NULL [session missing encoding, set from parameters]</li>
<li class="success">lang settings lang ###, domain &&&&, encoding $$$$, path foo_bar_path; session lang: NULL, session char: NULL [no session set, only parameters, all invalid]</li>
<li class="success">lang settings lang en_US.UTF-8, domain admin, encoding UTF-8, path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/; session lang: ###, session char: &&&& [all session vars are invalid, fallback]</li>
</ul>
<h2>\CoreLibs\Language\L10n method tests</h2>
<ul>
<li class="success">check that getInstance() returns valid instance</li>
<li class="success">check that getTranslatorClass() returns valid instance</li>
<li class="success">check l10n init with Locale en_US.UTF-8, Path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/, Domain frontend, Legacy: $legacy with context [gettext load en]</li>
<li class="success">check l10n init with Locale ja_JP.UTF-8, Path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/, Domain admin, Legacy: $legacy with NULL [gettext load ja]</li>
<li class="success">check l10n init with Locale ja, Path /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/, Domain admin, Legacy: $legacy with NULL [gettext load short ja no encoding]</li>
<li class="success">check l10n init with Locale en_US.UTF-8, Path frontend, Domain /var/www/html/developers/clemens/core_data/composer-packages/CoreLibs-Composer-All/test/phpunit/Language/includes/locale/, Legacy: $legacy with context [mixed path and domain [DEPRECATED]]</li>
<li class="success">check l10n init with Locale ja_JP.UTF-8, Path NULL, Domain admin, Legacy: $legacy with NULL [unset path with locale and domain [DEPRECATED]]</li>
<li class="success">check l10n init with Locale '', Path '', Domain '', Legacy: $legacy with NULL [empty load new ]</li>
<li class="success">change locale from en_US.UTF-8 and domain frontend to locale ja_JP.UTF-8 and domain frontend [load and change (en->ja)]</li>
<li class="success">change locale from '' and domain '' to locale en_US.UTF-8 and domain frontend [empty load and change to en]</li>
<li class="success">plural string test for locale en_US and domain admin with NULL [plural text en]</li>
<li class="success">plural string test for locale en_US and domain admin with context [plural text context en]</li>
<li class="success">check en [en]</li>
<li class="success">check en.UTF-8 [en.UTF-8]</li>
<li class="success">check en_US [en_US]</li>
<li class="success">check en_US.UTF-8 [en_US.UTF-8]</li>
<li class="success">check en_US@subtext [en_US@subtext]</li>
<li class="success">check en_US.UTF-8@subtext [en_US.UTF-8@subtext]</li>
<li class="success">check detectLocale for global with LOCALE and ja_JP.UTF-8 is ja_JP.UTF-8 [global locale]</li>
<li class="success">check detectLocale for env with LC_ALL and ja_JP.UTF-8 is ja_JP.UTF-8 [env LC_ALL]</li>
<li class="success">check detectLocale for env with LANG and ja_JP.UTF-8 is ja_JP.UTF-8 [env LANG]</li>
<li class="success">check detectLocale for env with LC_ALL and '' is en [default return]</li>
<li class="success">set foo with foo/bar and get foo and expect foo/bar [valid set and get]</li>
<li class="success">set foo with foo/bar and get iamnotset and expect false [invalid set and get]</li>
<li class="success">set foo and expect foo [valid domain]</li>
<li class="success">set '' and expect '' [empty domain]</li>
<li class="success">set foo with foo and expect foo [valid locale]</li>
<li class="success">set '' with '' and expect '' [empty locale]</li>
<li class="success">set '' with foo and expect foo [empty locale, pre set]</li>
<li class="success">check functions with locale en_US.UTF-8 and domain frontend [standard en]</li>
<li class="success">check functions with locale ja_JP.UTF-8 and domain admin [standard ja]</li>
</ul>
<h2>\CoreLibs\Logging\ErrorMessages method tests</h2>
<ul>
<li class="success">error message level: ok will be ok [ok]</li>
<li class="success">error message level: success will be success [success]</li>
<li class="success">error message level: info will be info [info]</li>
<li class="success">error message level: notice will be notice [notice]</li>
<li class="success">error message level: warn will be warn [warn]</li>
<li class="success">error message level: warning will be warn [warning]</li>
<li class="success">error message level: error will be error [error]</li>
<li class="success">error message level: abort will be abort [abort]</li>
<li class="success">error message level: crash will be crash [crash]</li>
<li class="success">error message level: wrong will be unknown [wrong level]</li>
<li class="success">Test of all methods for n messages []</li>
<li class="success">Test Log writing with log level Error [error, not logged]</li>
<li class="success">Test Log writing with log level Error [error, logged]</li>
<li class="success">Test Log writing with log level Error [error, logged, message]</li>
<li class="success">Test Log writing with log level Error [warn, not logged]</li>
<li class="success">Test Log writing with log level Error [warn, logged]</li>
<li class="success">Test Log writing with log level Error [warn, logged, message]</li>
<li class="success">Test Log writing with log level Error [notice]</li>
<li class="success">Test Log writing with log level Error [notice, message]</li>
<li class="success">Test Log writing with log level Error [crash]</li>
<li class="success">Test Log writing with log level Error [crash, message]</li>
<li class="success">Test Log writing with log level Error [abort]</li>
<li class="success">Test Log writing with log level Error [abort, message]</li>
<li class="success">Test Log writing with log level Error [unknown]</li>
<li class="success">Test Log writing with log level Error [unknown, message]</li>
<li class="success">Test Log writing with log Level Debug [error, not logged]</li>
<li class="success">Test Log writing with log Level Debug [error, logged]</li>
<li class="success">Test Log writing with log Level Debug [error, logged, message]</li>
<li class="success">Test Log writing with log Level Debug [warn, not logged]</li>
<li class="success">Test Log writing with log Level Debug [warn, logged]</li>
<li class="success">Test Log writing with log Level Debug [warn, logged, message]</li>
<li class="success">Test Log writing with log Level Debug [notice]</li>
<li class="success">Test Log writing with log Level Debug [notice, message]</li>
<li class="success">Test Log writing with log Level Debug [crash]</li>
<li class="success">Test Log writing with log Level Debug [crash, message]</li>
<li class="success">Test Log writing with log Level Debug [abort]</li>
<li class="success">Test Log writing with log Level Debug [abort, message]</li>
<li class="success">Test Log writing with log Level Debug [unknown]</li>
<li class="success">Test Log writing with log Level Debug [unknown, message]</li>
<li class="success">Test jump target set and reporting</li>
</ul>
<h2>\CoreLibs\Logging\Logging method tests</h2>
<ul>
<li class="success">init test [log folder set]</li>
<li class="success">init test [no log folder set]</li>
<li class="success">init test [file_id set but not log_file_id]</li>
<li class="success">init test [file_id and log_file_id set]</li>
<li class="success">init test [nothing set]</li>
<li class="success">setLoggingLevel set/get checks</li>
<li class="success">setErrorLogWriteLevel set/get checks</li>
<li class="success">setLogFileId set/get checks</li>
<li class="success">per run log id set test: option: true, override: false [option set]</li>
<li class="success">per run log id set test: option: false, override: false [direct set]</li>
<li class="success">per run log id set test: option: false, override: true [override set]</li>
<li class="success">per run log id set test: option: false, override: true [option and override set]</li>
<li class="success">setLogDate set/get checks</li>
<li class="success">Logger\Flag enum test</li>
<li class="success">setLogDate set/get checks</li>
<li class="success">setLogFolder set/get checks, init check</li>
<li class="success">setLogMaxFileSize set/get checks, init check</li>
<li class="success">getOption checks</li>
<li class="success">debug checks</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [info]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [notice]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [warning]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [error]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [crticial]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [alert]</li>
<li class="success">logging level write checks for CoreLibs\Logging\Logger\Level [emergency]</li>
<li class="success">log() general call test</li>
</ul>
<h2>\CoreLibs\Output\Form\Elements method tests</h2>
<ul>
<li class="defect">Output\Form\Elements Class tests</li>
</ul>
<h2>\CoreLibs\Output\Form\Generate method tests</h2>
<ul>
<li class="defect">Output\Form\Generate Class tests</li>
</ul>
<h2>\CoreLibs\Output\Form\Token method tests</h2>
<ul>
<li class="defect">Output\Form\Token Class tests</li>
</ul>
<h2>\CoreLibs\Output\Image method tests</h2>
<ul>
<li class="success">createThumbnail checks</li>
<li class="success">createThumbnailSimple checks</li>
<li class="success">correctImageOrientation checks</li>
</ul>
<h2>\CoreLibs\Output\Progressbar method tests</h2>
<ul>
<li class="defect">Output\Progressbar Class tests</li>
</ul>
<h2>\CoreLibs\Security\AsymmetricAnonymousEncryption method tests</h2>
<ul>
<li class="success">Check if init class set key pair matches to created key pair and public key</li>
<li class="success">Check if init class set key pair and public key matches to created key pair and public key</li>
<li class="success">Check if init class set public key matches to created public key</li>
<li class="success">Check if set key pair after class init matches to created key pair and public key</li>
<li class="success">Check if set key pair after class init matches to created key pair and public key</li>
<li class="success">Check if set key pair after class init matches to created key pair and public key</li>
<li class="success">Check different key pair and public key set</li>
<li class="success">Check if new set privat key does not overwrite set public key</li>
<li class="success">Test empty encrypted string to decrypt</li>
<li class="success">encrypt/decrypt I am a secret must be I am a secret [valid string]</li>
<li class="success">encrypt/decrypt indirect I am a secret must be I am a secret [valid string]</li>
<li class="success">encrypt/decrypt indirect with public key I am a secret must be I am a secret [valid string]</li>
<li class="success">encrypt/decrypt static I am a secret must be I am a secret [valid string]</li>
<li class="success">decrypt with wrong key I am a secret throws Invalid key pair [wrong decryption key]</li>
<li class="success">decrypt indirect with wrong key I am a secret throws Invalid key pair [wrong decryption key]</li>
<li class="success">decrypt static with wrong key I am a secret throws Invalid key pair [wrong decryption key]</li>
<li class="success">wrong key pair not_a_hex_key_pair throws Invalid hex key pair [not hex key pair]</li>
<li class="success">wrong key pair 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key pair is not the correct size (must be [too short hex key pair]</li>
<li class="success">wrong key pair '' throws Key pair cannot be empty [empty key pair]</li>
<li class="success">wrong key pair indirect not_a_hex_key_pair throws Invalid hex key pair [not hex key pair]</li>
<li class="success">wrong key pair indirect 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key pair is not the correct size (must be [too short hex key pair]</li>
<li class="success">wrong key pair indirect '' throws Key pair cannot be empty [empty key pair]</li>
<li class="success">wrong key pair static not_a_hex_key_pair throws Invalid hex key pair [not hex key pair]</li>
<li class="success">wrong key pair static 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key pair is not the correct size (must be [too short hex key pair]</li>
<li class="success">wrong key pair static '' throws Key pair cannot be empty [empty key pair]</li>
<li class="success">wrong public key not_a_hex_public_key throws Invalid hex public key [not hex public key]</li>
<li class="success">wrong public key 1cabd5cba9e042f12522f4ff2de5c31d233b throws Public key is not the correct size (must be [too short hex public key]</li>
<li class="success">wrong public key '' throws Public key cannot be empty [empty public key]</li>
<li class="success">wrong public key indirect not_a_hex_public_key throws Invalid hex public key [not hex public key]</li>
<li class="success">wrong public key indirect 1cabd5cba9e042f12522f4ff2de5c31d233b throws Public key is not the correct size (must be [too short hex public key]</li>
<li class="success">wrong public key indirect '' throws Public key cannot be empty [empty public key]</li>
<li class="success">wrong public key static not_a_hex_public_key throws Invalid hex public key [not hex public key]</li>
<li class="success">wrong public key static 1cabd5cba9e042f12522f4ff2de5c31d233b throws Public key is not the correct size (must be [too short hex public key]</li>
<li class="success">wrong public key static '' throws Public key cannot be empty [empty public key]</li>
<li class="success">too short ciphertext short throws base642bin failed: [invalid cipher text]</li>
<li class="success">too short ciphertext Um8tBGiVfFAOg2YoUgA5fTqK1wXPB1S7uxhPNE1lqDxgntkEhYJDOmjXa0DMpBlYHjab6sC4mgzwZSzGCUnXDAgsHckwYwfAzs/r throws Invalid key pair [cannot decrypt]</li>
<li class="success">too short ciphertext U29tZSB0ZXh0IGhlcmU= throws Invalid key pair [invalid text]</li>
<li class="success">too short ciphertext indirect short throws base642bin failed: [invalid cipher text]</li>
<li class="success">too short ciphertext indirect Um8tBGiVfFAOg2YoUgA5fTqK1wXPB1S7uxhPNE1lqDxgntkEhYJDOmjXa0DMpBlYHjab6sC4mgzwZSzGCUnXDAgsHckwYwfAzs/r throws Invalid key pair [cannot decrypt]</li>
<li class="success">too short ciphertext indirect U29tZSB0ZXh0IGhlcmU= throws Invalid key pair [invalid text]</li>
<li class="success">too short ciphertext static short throws base642bin failed: [invalid cipher text]</li>
<li class="success">too short ciphertext static Um8tBGiVfFAOg2YoUgA5fTqK1wXPB1S7uxhPNE1lqDxgntkEhYJDOmjXa0DMpBlYHjab6sC4mgzwZSzGCUnXDAgsHckwYwfAzs/r throws Invalid key pair [cannot decrypt]</li>
<li class="success">too short ciphertext static U29tZSB0ZXh0IGhlcmU= throws Invalid key pair [invalid text]</li>
</ul>
<h2>\CoreLibs\Security\Password method tests</h2>
<ul>
<li class="success">passwordSet test compare to test: passwordVerify true [matching password]</li>
<li class="success">passwordSet test compare to not_test: passwordVerify false [not matching password]</li>
<li class="success">passwordRehashCheck y$EgWJ2WE73DWi.hIyFRCdpejLXTvHbmTK3LEOclO1tAvXAXUNuUS4W will be false [no rehash needed]</li>
<li class="success">passwordRehashCheck 9c42a1346e333a770904b2a2b37fa7d3 will be true [rehash needed]</li>
</ul>
<h2>\CoreLibs\Security\SymmetricEncryption method tests</h2>
<ul>
<li class="success">Check if init class set key matches to created key</li>
<li class="success">Check if set key after class init matches to created key</li>
<li class="success">Test empty encrypted string to decrypt</li>
<li class="success">encrypt/decrypt I am a secret must be I am a secret [valid string]</li>
<li class="success">encrypt/decrypt indirect I am a secret must be I am a secret [valid string]</li>
<li class="success">encrypt/decrypt static I am a secret must be I am a secret [valid string]</li>
<li class="success">decrypt with wrong key I am a secret throws Invalid Key [wrong decryption key]</li>
<li class="success">decrypt indirect with wrong key I am a secret throws Invalid Key [wrong decryption key]</li>
<li class="success">decrypt static with wrong key I am a secret throws Invalid Key [wrong decryption key]</li>
<li class="success">wrong key not_a_hex_key throws Invalid hex key [not hex key]</li>
<li class="success">wrong key 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key is not the correct size (must be [too short hex key]</li>
<li class="success">wrong key '' throws Key cannot be empty [empty key]</li>
<li class="success">wrong key indirect not_a_hex_key throws Invalid hex key [not hex key]</li>
<li class="success">wrong key indirect 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key is not the correct size (must be [too short hex key]</li>
<li class="success">wrong key indirect '' throws Key cannot be empty [empty key]</li>
<li class="success">wrong key static not_a_hex_key throws Invalid hex key [not hex key]</li>
<li class="success">wrong key static 1cabd5cba9e042f12522f4ff2de5c31d233b throws Key is not the correct size (must be [too short hex key]</li>
<li class="success">wrong key static '' throws Key cannot be empty [empty key]</li>
<li class="success">too short ciphertext short throws Decipher message failed: [too short ciphertext]</li>
<li class="success">too short ciphertext indirect short throws Decipher message failed: [too short ciphertext]</li>
<li class="success">too short ciphertext static short throws Decipher message failed: [too short ciphertext]</li>
</ul>
<h2>\CoreLibs\Template\HtmlBuilder\Block method tests</h2>
<ul>
<li class="success">Create block</li>
</ul>
<h2>\CoreLibs\Template\HtmlBuilder\Element method tests</h2>
<ul>
<li class="success">create single new Element test [simple div]</li>
<li class="success">create single new Element test [simple input]</li>
<li class="success">test handling of adding and removing css classes</li>
<li class="success">nested test and loop assign detection</li>
<li class="success">updated nested connection</li>
<li class="success">test change tag/id/content</li>
<li class="success">test change options</li>
<li class="success">build element tree from object</li>
<li class="success">build elements from array list</li>
<li class="success">check for invalid tag detection, possible invalid id, possible invalid css</li>
</ul>
<h2>\CoreLibs\Template\HtmlBuilder\StringReplace method tests</h2>
<ul>
<li class="success">test basic replaceData</li>
</ul>
<h2>\CoreLibs\UrlRequests\Curl method tests</h2>
<ul>
<li class="success">UrlRequests\Curl Class setup tasks [no config]</li>
<li class="success">UrlRequests\Curl Class setup tasks [setup all possible configs]</li>
<li class="success">UrlRequests\Curl Class setup tasks [setup base_uri only]</li>
<li class="success">UrlRequests\Curl Class setup tasks [replace base_uri]</li>
<li class="success">UrlRequests\Curl Class setup tasks [set header new]</li>
<li class="success">UrlRequests\Curl Class setup tasks [set header overwrite]</li>
<li class="success">UrlRequests\Curl Class setup tasks [set header add]</li>
<li class="success">UrlRequests\Curl Class setup tasks [remove header string, full match]</li>
<li class="success">UrlRequests\Curl Class setup tasks [remove header string, key match only]</li>
<li class="success">UrlRequests\Curl Class setup tasks [remove header array, key match]</li>
<li class="success">UrlRequests\Curl Class setup tasks [remove header array, string match]</li>
<li class="success">UrlRequests\Curl Class setup tasks [remove header array, array match]</li>
<li class="success">UrlRequests\Curl call with data merge [base url + add url]</li>
<li class="success">UrlRequests\Curl call with data merge [base url + replace url]</li>
<li class="success">UrlRequests\Curl call with data merge [base header + add header]</li>
<li class="success">UrlRequests\Curl call with data merge [base header + reset header]</li>
<li class="success">UrlRequests\Curl call with data merge [base header + add header (same)]</li>
<li class="success">UrlRequests\Curl call with data merge [base header + add header (replace)]</li>
<li class="success">UrlRequests\Curl request calls [basic get, no options]</li>
<li class="success">UrlRequests\Curl request calls [basic get, query options]</li>
<li class="success">UrlRequests\Curl request calls [basic delete, no options]</li>
<li class="success">UrlRequests\Curl request calls [basic delete, query options]</li>
<li class="success">UrlRequests\Curl request calls [basic delete, query/body options]</li>
<li class="success">UrlRequests\Curl request calls [basic delete, body options]</li>
<li class="success">UrlRequests\Curl request calls [basic delete, body options as string]</li>
<li class="success">UrlRequests\Curl request calls [basic post, no options]</li>
<li class="success">UrlRequests\Curl request calls [basic post, query options]</li>
<li class="success">UrlRequests\Curl request calls [basic post, query/body options]</li>
<li class="success">UrlRequests\Curl request calls [basic post, body options]</li>
<li class="success">UrlRequests\Curl request calls [basic post, body option as string]</li>
<li class="success">UrlRequests\Curl request calls [basic put, no options]</li>
<li class="success">UrlRequests\Curl request calls [basic put, query options]</li>
<li class="success">UrlRequests\Curl request calls [basic put, query/body options]</li>
<li class="success">UrlRequests\Curl request calls [basic put, body options]</li>
<li class="success">UrlRequests\Curl request calls [basic put, body option as string]</li>
<li class="success">UrlRequests\Curl request calls [basic patch, no options]</li>
<li class="success">UrlRequests\Curl request calls [basic patch, query options]</li>
<li class="success">UrlRequests\Curl request calls [basic patch, query/body options]</li>
<li class="success">UrlRequests\Curl request calls [basic patch, body options]</li>
<li class="success">UrlRequests\Curl request calls [basic patch, body option as string]</li>
<li class="success">UrlRequests\Curl multiple calls</li>
<li class="success">UrlRequests\Curl auth test call</li>
<li class="success">UrlRequests\Curl Exception:InvalidRequestType</li>
<li class="success">UrlRequests\Curl Exception:InvalidHeaderKey</li>
<li class="success">UrlRequests\Curl Exception:InvalidHeaderValue</li>
<li class="success">UrlRequests\Curl Exception:CurlExecError</li>
<li class="success">UrlRequests\Curl Exception:ClientError</li>
<li class="success">UrlRequests\Curl Exception:ClientError on call enable</li>
<li class="success">UrlRequests\Curl Exception:ClientError unset on call</li>
</ul>
</body>
</html>