phpOMS\tests\Account\AccountManager: Account/user manager to handle/access loaded accounts [x] The manager has the expected default values after initialization [x] An account can be added to the manager [x] An account can be retrieved from the manager [x] An account can only be added once to the account manager (no duplication) [x] An account can be removed from the account manager [x] Only a valid account can be removed from the manager phpOMS\tests\Account\AccountStatus: Account status [x] Enum count [x] The account status enum has only unique values [x] The account status enum has the correct values phpOMS\tests\Account\Account: Base account/user representation [x] The account has the expected default values after initialization [x] The account names can be set and retrieved correctly [x] Groups can be added to an account [x] An account can have a valid email address [x] The default status of the account can be changed to a different valid status [x] The default type of the account can be changed to a different valid type [x] Account permissions can be added [x] Account permissions can be checked for existence [x] Group pmerission exists [x] Account permissions can be removed [x] An account can have it's own localization [x] An account 'last activity' timestamp can be updated and retrieved [x] An account can only have a valid email [x] An account can only have valid account status [x] An account can only have valid account types phpOMS\tests\Account\AccountType: Account type [x] The account type enum has the correct number of type codes [x] The account type enum has only unique values [x] The account type enum has the correct values phpOMS\tests\Account\GroupStatus: Group status [x] The group status enum has the correct number of status codes [x] The group status enum has only unique values [x] The group status enum has the correct values phpOMS\tests\Account\Group: Base group representation [x] The group has the expected default values after initialization [x] The group name and description can be set and retrieved correctly [x] Group permissions can be added [x] Group permissions can be checked for existence [x] Group permissions can be removed [x] The default status of the group can be changed to a different valid status [x] A group can only have valid group status phpOMS\tests\Account\NullAccount: Null account [x] The null account is an instance of the account class [x] The null account can get initialized with an id [x] Json serialization phpOMS\tests\Account\NullGroup: Null group [x] The null group is an instance of the group class [x] The null group can get initialized with an id [x] Json serialization phpOMS\tests\Account\PermissionAbstractTest: Base permission representation [x] The permission has the expected default values after initialization [x] The permission can be set and returned correctly [x] Two permissions can be checked for equality [x] Full permissions [x] Correct permissions are validated [x] Invalid permissions are not validated [x] Correct permission flags are validated [x] Invalid permission flags are not validated phpOMS\tests\Account\PermissionType: Permission type [x] The permission type enum has the correct number of type codes [x] The permission type enum has only unique values [x] The permission type enum has the correct values Basic Ocr (phpOMS\tests\Ai\Ocr\BasicOcr) [x] Ocr [x] Custom mnist files [x] Invalid image path [x] Invalid label path Tesseract Ocr (phpOMS\tests\Ai\Ocr\Tesseract\TesseractOcr) [x] Ocr basic [ ] Invalid ocr path [x] Ocr with thresholding phpOMS\tests\Algorithm\Clustering\KmeansTest: Clustering points/elements with the K-means algorithm [x] The clustering of points and dynamic check of new points works as expected phpOMS\tests\Algorithm\Clustering\PointTest: Default point in a cluster [x] The point has the expected default values after initialization [x] Coordinates of a point can be set and returned [x] The group/cluster of a point can be set and returned [x] The name of a point can be set and returned phpOMS\tests\Algorithm\CoinMatching\MinimumCoinProblemTest: Match a value by using the minimum quantity of available sub values (Minimum Coin Problem) [x] A value is matched with the minimum quantity of available coins. phpOMS\tests\Algorithm\JobScheduling\JobTest: Default job for the job scheduling [x] The job has the expected values after initialization phpOMS\tests\Algorithm\JobScheduling\WeightedTest: Job scheduling based on values/profit [x] The optimal job combination is selected to maximize the value/profit without overlapping jobs [x] A job list with only one job simply returns one job phpOMS\tests\Algorithm\Knapsack\BackpackTest: The default backpack or basket which holds all items for the Knapsack algorithm [x] The backpack has the expected values after initialization [x] Items can be added to the backpack and automatically change the value and cost the backpack contains phpOMS\tests\Algorithm\Knapsack\BoundedTest: A Knapsack implementation for discrete quantities, values and costs and bounded item quantities [x] The optimal item selection in a backpack is calculated in order to optimize the value/profit while considering the available capacity/cost limit phpOMS\tests\Algorithm\Knapsack\ContinuousTest: A Knapsack implementation for continuous quantities, values and costs [x] The optimal item selection in a backpack is calculated in order to optimize the value/profit while considering the available capacity/cost limit [discrete quantities] [x] The optimal item selection in a backpack is calculated in order to optimize the value/profit while considering the available capacity/cost limit [continuous quantities] phpOMS\tests\Algorithm\Knapsack\ItemTest: The default item to be added to the backpack or basket [x] The item has the expected values after initialization phpOMS\tests\Algorithm\Maze\MazeGeneratorTest: Maze generation [x] A random maze can be generated [x] A random maze can be rendered phpOMS\tests\Algorithm\PathFinding\AStarNode: AStarNode on grid for path finding [x] The node has the expected values after initialization [x] The node can be set closed and checked [x] The node can be set opened and checked [x] The g value cen be set and returned [x] The h value cen be set and returned [x] The f value cen be set and returned phpOMS\tests\Algorithm\PathFinding\AStarTest: AStar path finding [x] The correct path is found for diagonal movement [x] The correct path is found for straight movement [x] The correct path is found for diagonal movement [one obstacle] [x] The correct path is found for diagonal movement [no obstacle] [x] A invalid start or end node returns the grid phpOMS\tests\Algorithm\PathFinding\GridTest: Grid for path finding [x] By default a grid is empty [x] A grid can be created from an array [x] A node can be set and returned from the grid [x] Out of bounds nodes cannot be returned [x] All horizontal neighbors can be found correctly [x] All vertical neighbors can be found correctly [x] No straight neighbors are found if no straight neighbors exist [x] All straight neighbors can be found correctly [x] All neighbors except blocked diagonal neighbors can be found correctly [x] All neighbors except blocked diagonal neighbors can be found correctly [x] No diagonal neighbors are found if no neighbors exist [x] All diagonal neighbors can be found correctly [x] All neighbors can be found correctly [x] All neighbors can be found correctly even if one obstacle exists [x] No diagonal neighbors are found if they are blocked on two sides [x] All neighbors can be found correctly if no obstacles exists [x] No diagonal neighbors are found if one obstacle exists [x] All neighbors can be found correctly if no obstacles exist phpOMS\tests\Algorithm\PathFinding\HeuristicTest: Heuristic for path finding [x] The heuristics return the correct metric results phpOMS\tests\Algorithm\PathFinding\JumpPointNode: JumpPointNode on grid for path finding [x] The node has the expected values after initialization [x] The node can be set closed and checked [x] The node can be set opened and checked [x] The node can be set tested and checked [x] The g value cen be set and returned [x] The h value cen be set and returned [x] The f value cen be set and returned phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest: JumpPoint path finding [x] The correct path is found for diagonal movement [x] The correct path is found for straight movement [x] The correct path is found for diagonal movement [one obstacle] [x] The correct path is found for diagonal movement [no obstacle] [x] A invalid start or end node returns the grid phpOMS\tests\Algorithm\PathFinding\NodeTest: Node on grid for path finding [x] The node has the expected values after initialization [x] Nodes with equal coordinates are equal [x] Nodes with different coordinates are not equal [x] A parent node can be set and returned phpOMS\tests\Algorithm\PathFinding\PathTest: Path on grid [x] The path has the expected values after initialization [x] The diagonal euclidean path length is calculated correctly [x] The straight euclidean path length is calculated correctly [x] The path is correctly expanded in case only jump points are defined phpOMS\tests\Algorithm\Rating\EloTest: Rating generation [x] 1v1 rating test [x] group rating test phpOMS\tests\Algorithm\Rating\Glicko1Test: Rating generation [x] 1v1 rating test [x] group rating test phpOMS\tests\Algorithm\Rating\Glicko2Test: Rating generation [x] 1v1 rating test [x] group rating test phpOMS\tests\Algorithm\Sort\BitonicSortTest: Bitonic sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\BubbleSortTest: Bubble sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\BucketSortTest: Bucket sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order [x] If no buckets are specified the elements cannot be sorted and an empty result is returned phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest: CocktailShaker sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\CombSortTest: Comb sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\CycleSortTest: Cycle sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\GnomeSortTest: Gnome sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\HeapSortTest: Heap sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\InsertionSortTest: Insertion sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\IntroSortTest: Intro sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\MergeSortTest: Merge sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\OddEvenSortTest: OddEven sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\PancakeSortTest: Pancake sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\QuickSortTest: Quick sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\SelectionSortTest: Selection sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\ShellSortTest: Shell sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\StoogeSortTest: Stooge sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Algorithm\Sort\TimSortTest: Tim sort [x] A list with one element returns the list with the element itself [x] A list ot elements can be sorted in ASC order [x] A list ot elements can be sorted in DESC order phpOMS\tests\Api\EUVAT\EUVATBffOnlineTest: EU VAT German BFF Online validation [x] The BFF Online service can validate a valid VAT ID [x] Validate qualified invalid id phpOMS\tests\Api\EUVAT\EUVATViesTest: EU VAT Vies validation [x] The VIES service can validate a valid VAT ID [x] Validate qualified invalid id phpOMS\tests\Application\ApplicationAbstractTest: Application abstraction [x] Application values can be set and returned [x] Application values cannot be overwritten phpOMS\tests\Application\ApplicationInfoTest: Module info file manager [x] An application info file can be correctly loaded [x] A info file can be modified [x] A invalid info file path load throws a PathException [x] A invalid info file path update throws a PathException [x] A invalid change data throws a InvalidArgumentException phpOMS\tests\Application\ApplicationManagerTest: Application manager [x] An application can be installed and uninstalled [x] An application can be re-initialized [x] A invalid application path results in no installation [x] A missing installation file results in no installation [x] A missing info file results in no installation [x] A invalid application path results in no uninstallation [x] A missing uninstallation file results in no uninstallation phpOMS\tests\Application\InstallerAbstractTest: Abstract application installer [x] An invalid theme cannot be installed phpOMS\tests\Application\StatusAbstractTest: Abstract application status [x] A invalid application path cannot be activated phpOMS\tests\Application\UninstallerAbstractTest: Abstract application uninstaller [x] A missing database schema will not perform any database operations phpOMS\tests\Asset\AssetManagerTest: Asset manager to handle/access assets [x] The manager has the expected default values after initialization [x] An asset can be added to the manager [x] An asset can be retrieved from the manager [x] An asset can only be added once to the manager (no duplication unless overwritten) [x] An asset can be replaced upon request [x] An asset can be removed from the manager phpOMS\tests\Asset\AssetType: Asset type [x] The asset type enum has the correct number of status codes [x] The asset type enum has only unique values [x] The asset type enum has the correct values phpOMS\tests\Auth\AuthTest: Account and session authentication [x] The default http session doesn't authenticate an account phpOMS\tests\Auth\LoginReturnType: Login return type [x] The login return type enum has the correct number of type codes [x] The login return type enum has only unique values [x] The login return type enum has the correct values Autoload Exception (phpOMS\tests\AutoloadException) [x] Exception phpOMS\tests\AutoloaderTest: Class autoloader [x] Classes can be checked for existence [x] Loading [x] Manual path loading [x] Path finding [ ] Opcode cache invalidation [x] Uncached invalidation phpOMS\tests\Business\Finance\DepreciationTest: Depreciation calculations [x] The straight line depreciation and reverse value calculations are correct [x] The arithmetic degressive depreciation and reverse value calculations are correct [x] The arithmetic progressive depreciation and reverse value calculations are correct [x] The geometric progressive depreciation and reverse value calculations are correct [x] The geometric degressive depreciation and reverse value calculations are correct phpOMS\tests\Business\Finance\FinanceFormulasTest: Finance formulas [x] The annual percentage yield (APY) and reverse value calculations are correct [x] The future value of annuity (FVA) and reverse value calculations are correct [x] The future value of annuity continuous compounding (FVACC) and reverse value calculations are correct [x] The annuity payment from the present value (PV) and reverse value calculations are correct [x] The annuity payment from the future value (FV) and reverse value calculations are correct [x] The annuity payment from the present value (PV) and reverse value calculations are correct [x] The present value of the annuity is correct [x] The present value annuity factor of the annuity is correct [x] The due present value the annuity is correct [x] The due future value the annuity is correct [x] The relative market share calculations by shares and ales are correct [x] The asset ratio calculations are correct [x] Balance ratio calculations for DII, Receivables/Turnover, and more are correct [x] Dept ratios for dept coverage, dept to equity and dept to income are correct [x] Return on balance statement positions are correct (e.g. return on assets, on equity) [x] Balance / P&L ratios are correct (e.g. inventory turnover, net profit margin) [x] Various ratios are correct (e.g. interest coverage, quick ratio, rate of inflation) [x] Compound calculations for interest, principal and periods are correct [x] Continuous compound calculations for interest, principal and periods are correct [x] Calculations for interest, principal and periods are correct [x] The discounted payback period is correct [x] Test the correct calculation of the growth rate in order to double and vice versa [x] Test the correct calculation of the growth rate in order to double and vice versa with continuous compounding [x] Calculations for equivalent annual annuity are correct [x] The free cash flow to equity calculation is correct (how much cash is available after expenses and dept payments) [x] The free cash flow to firm calculation is correct (how much cash is available after expenses) [x] The future value calculation is correct [x] The future value calculation including continuous compounding is correct [x] The future value factor calculation is correct [x] The calculation of the geometric mean of multiple return rates is correct [x] The calculation of the future value of the growing annuity is correct [x] The calculation of the payment based on the present value of the growing annuity is correct [x] The calculation of the payment based on the future value of the growing annuity is correct [x] The calculation of the present value of the growing annuity is correct [x] The calculation of the present value of the growing perpetuity is correct [x] The calculation of the net present value is correct [x] No cash flows in the net present value calculation result in 0 [x] The calculation of the real rate of return is correct [x] The calculation of the net working capital is correct [x] The periods to reach a future value based on the present value is calculated correctly [x] The calculation of the present value is correct [x] The calculation of the present value using continuous compounding is correct phpOMS\tests\Business\Finance\ForensicsTest: Forensics formulas [x] Benford analysis [x] Expected benford distribution phpOMS\tests\Business\Finance\LoanTest: Loan formulas [x] The loan to deposit ratio is correct [x] The loan to value ratio is correct [x] The balloon loan payments are correct for a given balloon [x] The balloon loan residual value (balloon) is correct for given payments [x] The loan payments are correct for a given interest rate and period [continuous compounding] [x] The residual value is correct for a given payment amount, interest rate and period [continuous compounding] phpOMS\tests\Business\Finance\LorenzkurveTest: Lorenz kurve [x] The gini coefficient calculation is correct phpOMS\tests\Business\Finance\StockBondsTest: Stock & bond related formulas [x] The calculation of various stock/bond related ratios/yields is correct [x] The calculation of the bond yield based on face value and price is correct [x] The calculation of the return of the capital asset pricing model is correct [x] The capital gains yield calculation is correct [x] The diluted earnings per share calculation is correct [x] The calculation of the absolute return for multiple holding periods is correct [x] The tax equivalent yield is calculated correctly [x] The net asset value is calculated correctly [x] The calculation of the present value of a stock with constant growth rate is correct [x] The total stock return including dividends and sales price is correct [x] The calculation of the yield of a bond is correct [x] The calculation of value of the zero coupon bond is correct [x] The calculation of the yield of a zero coupon bond is correct phpOMS\tests\Business\Marketing\CustomerValueTest: Customer value [x] The simple customer life time value is correctly calculated [x] The monthly recurring revenue (MRR) is correctly calculated phpOMS\tests\Business\Marketing\MetricsTest: General marketing metrics [x] Test the correctness of the customer retention calculation [x] The profit according to Berry can be correctly calculated [x] The purchase probability of customers can be calculated based on historic information using the migration model [x] The CLTV can be calculated using the migration model [x] The migration model can be used in order to determin which buying/none-buying customer group should receive a mailing [x] The probability of a customer buying can be calculated based on his previous purchase behavior phpOMS\tests\Business\Marketing\NetPromoterScoreTest: Net promoter [x] The net promoter has the expected default values after initialization [x] The net promoter score, detractors, passives and promoters are correct phpOMS\tests\Business\Marketing\PageRankTest: Page rank algorithm [x] Test the correctness of the page rank algorithm [x] Test the correctness of the page rank algorithm with custom damping and starting values phpOMS\tests\Business\Programming\MetricsTest: General programming metrics [x] Test correctness of the ABC calculation [x] Test correctness of CRAP score phpOMS\tests\Business\Recommendation\ArticleCorrelationAffinityTest: Article affinity/correlation [x] The highest affinities between articles purchased are calculated correctly [x] The affinity of a new article is empty phpOMS\tests\Business\Sales\MarketShareEstimationTest: Market share calculations [x] The rank calculated with Zipf is correct [x] The market share by rank calculated with Zipf is correct phpOMS\tests\Config\OptionsTrait: Helper for managing options [x] The option helper has the expected default values after initialization [x] Options can be added to the helper [x] Options can be overwritten/changed [x] Multiple options can be added to the helper in one go [x] Multiple options can be retrieved phpOMS\tests\DataStorage\Cache\CachePoolTest: Pool for caches [x] The pool has the expected default values after initialization [x] New cache connections can be added to the pool [x] Cache connections cannot be overwritten with a different cache connection [x] Cache connections can be accessed with an identifier [x] By default a null cache is returned if no cache connection exists for the identifier [x] Cache connections can created by the pool and automatically get added but not overwritten [x] Cache connections can be removed from the pool [x] Removing a cache with an invalid identifier will result in no actions Cache Status (phpOMS\tests\DataStorage\Cache\CacheStatus) [x] Enum count [x] Unique [x] Enums Cache Type (phpOMS\tests\DataStorage\Cache\CacheType) [x] Enum count [x] Unique [x] Enums Cache Value Type (phpOMS\tests\DataStorage\Cache\Connection\CacheValueType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest: Factory for generating cache connections [x] The file cache can be created [ ] The memcached cache can be created [ ] The redis cache can be created [x] A invalid cache type results in an exception phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest: File cache connection [x] The file cache connection has the expected default values after initialization [x] The connection to a dedicated cache directory can be established (none-existing directories get created) [x] Different cache data (types) can be set and returned [x] Cache data can bet added and returned [x] Exists [x] Expired exists [x] Exists invalid status [x] Get like [x] Expired get like [x] Get like invalid status [x] Increment [x] Invalid key increment [x] Increment invalid status [x] Decrement [x] Invalid key decrement [x] Decrement invalid status [x] Rename [x] Rename invalid status [x] Delete invalid status [x] Delete like [x] Expired delte like [x] Delete like invalid status [x] Update expire [x] Update expire invalid status [x] Cache data cannot be added if it already exists [x] Existing cache data can be replaced [x] None-existing cache data cannot be replaced [x] Existing cache data can be deleted [x] Invalid key delete [x] The cache correctly handles general cache information [x] The cache can be flushed [x] Cache data can be set and returned with expiration limits [x] Expired cache data cannot be returned [x] Expired cache data can be forced to return [x] Unexpired cache data cannot be delete if lower expiration is defined [x] Expired cache data can be deleted if equal expiration is defined [x] Unexpired data can be force deleted with lower expiration date [x] Cache data can be flushed by expiration date [x] A bad cache status will prevent all cache actions [ ] A invalid cache connection will throw an InvalidConnectionConfigException [x] Adding a invalid data type will throw an InvalidArgumentException [x] Setting a invalid data type will throw an InvalidArgumentException phpOMS\tests\DataStorage\Cache\Connection\MemCachedTest: Memcache connection [ ] The memcached connection has the expected default values after initialization [ ] The connection to a cache can be established (none-existing directories get created) [ ] Different cache data (types) can be set and returned [ ] Cache data can bet added and returned [ ] Exists [ ] Expired exists [ ] Exists invalid status [ ] Increment [ ] Invalid key increment [ ] Increment invalid status [ ] Decrement [ ] Decrement invalid status [ ] Invalid key decrement [ ] Rename [ ] Rename invalid status [ ] Update expire [ ] Update expire invalid status [ ] Cache data cannot be added if it already exists [ ] Existing cache data can be replaced [ ] None-existing cache data cannot be replaced [ ] Existing cache data can be deleted [ ] Delete invalid status [ ] Invalid key delete [ ] The cache correctly handles general cache information [ ] The cache can be flushed [ ] Cache data can be set and returned with expiration limits [ ] Expired cache data cannot be returned [ ] Cache data can be flushed by expiration date [ ] A bad cache status will prevent all cache actions [ ] Adding a invalid data type will throw an InvalidArgumentException [ ] Setting a invalid data type will throw an InvalidArgumentException [ ] A invalid host throws a InvalidConnectionConfigException [ ] A invalid port throws a InvalidConnectionConfigException phpOMS\tests\DataStorage\Cache\Connection\NullCacheTest: Null cache connection if no cache is available [x] The default cache has the expected default values after initialization [x] Connect [x] Set input output [x] Add input output [x] Get like [x] Increment [x] Decrement [x] Replace [x] Rename [x] Delete [x] Delete like [x] Flush [x] Flush all [x] Exists [x] Update expire [x] Stats phpOMS\tests\DataStorage\Cache\Connection\RedisCache: Redis cache connection [ ] The redis cache connection has the expected default values after initialization [ ] The connection to a cache can be established (none-existing directories get created) [ ] Different cache data (types) can be set and returned [ ] Cache data can bet added and returned [ ] Exists [ ] Expired exists [ ] Exists invalid status [ ] Get like [ ] Expired get like [ ] Get like invalid status [ ] Increment [ ] Increment invalid status [ ] Invalid key increment [ ] Decrement [ ] Decrement invalid status [ ] Invalid key decrement [ ] Rename [ ] Rename invalid status [ ] Delete like [ ] Delete like invalid status [ ] Update expire [ ] Update expire invalid status [ ] Cache data cannot be added if it already exists [ ] Existing cache data can be replaced [ ] None-existing cache data cannot be replaced [ ] Existing cache data can be deleted [ ] Delete invalid status [ ] Invalid key delete [ ] The cache correctly handles general cache information [ ] The cache can be flushed [ ] Cache data can be set and returned with expiration limits [ ] Expired cache data cannot be returned [ ] A bad cache status will prevent all cache actions [ ] Adding a invalid data type will throw an InvalidArgumentException [ ] Setting a invalid data type will throw an InvalidArgumentException [ ] A invalid host throws a InvalidConnectionConfigException [ ] A invalid port throws a InvalidConnectionConfigException [ ] A invalid database throws a InvalidConnectionConfigException Invalid Connection Config Exception (phpOMS\tests\DataStorage\Cache\Exception\InvalidConnectionConfigException) [x] Exception phpOMS\tests\DataStorage\Cookie\CookieJar: CookieJar to handle http cookies [x] The cookie jar has the expected default values and functionality after initialization [x] Cookie values can be set and returned [x] Cookie values cannot be overwritten [x] Cookie values can be forced to overwrite [x] Cookie values can be removed [x] None-existing cookie values cannot be removed [x] Values cannot be removed from a locked cookie and throws a LockException [x] A locked cookie cannot be saved and throws a LockException phpOMS\tests\DataStorage\Database\Connection\ConnectionFactory: Database connection factory [x] The mysql connection can be successfully created [x] The postgresql connection can be successfully created [ ] The sqlserver connection can be successfully created [x] The sqlite connection can be successfully created [x] A invalid database type throws a InvalidArgumentException phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest: Mysql connection [x] Valid mysql connection data result in a valid database connection [x] A missing database type returns a failure [x] A missing database host returns a failure [x] A missing database port returns a failure [x] A missing database returns a failure [x] A missing database login returns a failure [x] A missing database password returns a failure [x] A invalid database type returns a failure [x] A invalid database returns a failure phpOMS\tests\DataStorage\Database\Connection\NullConnectionTest: Null connection [x] A null connection can be created as placeholder phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest: Postgresql connection [ ] Valid postgresql connection data result in a valid database connection [x] A missing database type returns a failure [x] A missing database host returns a failure [x] A missing database port returns a failure [x] A missing database returns a failure [x] A missing database login returns a failure [x] A missing database password returns a failure [x] A invalid database returns a failure [x] A invalid database returns a failure phpOMS\tests\DataStorage\Database\Connection\SQLiteConnectionTest: SQLite connection [x] Valid sqlite connection data result in a valid database connection [x] A missing database type returns a failure [x] Valid sqlite connection data result in a valid database connection [x] A missing database returns a failure [x] A invalid database returns a failure phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest: Sqlserver connection [ ] Valid sqlserver connection data result in a valid database connection [ ] A missing database type returns a failure [ ] A missing database host returns a failure [ ] A missing database port returns a failure [ ] A missing database returns a failure [ ] A missing database login returns a failure [ ] A missing database password returns a failure [ ] A invalid database type returns a failure [ ] A invalid database returns a failure phpOMS\tests\DataStorage\Database\Mapper\DataMapperAbstractTest: Datamapper for database models [x] The datamapper successfully creates a database entry of a model [x] Create null model [x] Create already created model [x] Create has many relation [x] The datamapper successfully returns a database entry as model [x] Get all [x] Get for [x] Get by [x] Get newest [x] Get null model [x] Find [x] Find [x] With conditional [x] The datamapper successfully updates a database entry from a model [x] The datamapper successfully deletes a database entry from a model [x] Delete has many relation [x] Reader [x] Writer [x] Updater [x] Remover phpOMS\tests\DataStorage\Database\DatabasePool: Pool for database connections [x] The pool has the expected default values after initialization [x] A database connection can be created by the pool [x] Database connections cannot be overwritten [x] Existing database connections can be added to the pool [x] Database connections can be removed from the pool [x] Invalid database connections cannot be removed [x] The first connection added to the pool is the default connection Database Status (phpOMS\tests\DataStorage\Database\DatabaseStatus) [x] Enum count [x] Unique [x] Enums Database Type (phpOMS\tests\DataStorage\Database\DatabaseType) [x] Enum count [x] Unique [x] Enums Invalid Connection Config Exception (phpOMS\tests\DataStorage\Database\Exception\InvalidConnectionConfigException) [x] Exception Invalid Database Type Exception (phpOMS\tests\DataStorage\Database\Exception\InvalidDatabaseTypeException) [x] Exception Invalid Mapper Exception (phpOMS\tests\DataStorage\Database\Exception\InvalidMapperException) [x] Exception phpOMS\tests\DataStorage\Database\Query\BuilderTest: Query builder for sql queries [x] Mysql selects form a valid query with data set #0 [ ] Mysql selects form a valid query with data set #1 [x] Mysql selects form a valid query with data set #2 [ ] Mysql selects form a valid query with data set #3 [x] Random mysql [x] Random postgresql [x] Random s q lite [x] Random sql server [x] Mysql orders form a valid query with data set #0 [ ] Mysql orders form a valid query with data set #1 [x] Mysql orders form a valid query with data set #2 [ ] Mysql orders form a valid query with data set #3 [x] Mysql offsets and limits form a valid query with data set #0 [ ] Mysql offsets and limits form a valid query with data set #1 [x] Mysql offsets and limits form a valid query with data set #2 [ ] Mysql offsets and limits form a valid query with data set #3 [x] Mysql groupings form a valid query with data set #0 [ ] Mysql groupings form a valid query with data set #1 [x] Mysql groupings form a valid query with data set #2 [ ] Mysql groupings form a valid query with data set #3 [x] Mysql wheres form a valid query with data set #0 [ ] Mysql wheres form a valid query with data set #1 [x] Mysql wheres form a valid query with data set #2 [ ] Mysql wheres form a valid query with data set #3 [x] Mysql joins form a valid query with data set #0 [ ] Mysql joins form a valid query with data set #1 [x] Mysql joins form a valid query with data set #2 [ ] Mysql joins form a valid query with data set #3 [x] Mysql inserts form a valid query with data set #0 [ ] Mysql inserts form a valid query with data set #1 [x] Mysql inserts form a valid query with data set #2 [ ] Mysql inserts form a valid query with data set #3 [x] Mysql deletes form a valid query with data set #0 [ ] Mysql deletes form a valid query with data set #1 [x] Mysql deletes form a valid query with data set #2 [ ] Mysql deletes form a valid query with data set #3 [x] Mysql updates form a valid query with data set #0 [ ] Mysql updates form a valid query with data set #1 [x] Mysql updates form a valid query with data set #2 [ ] Mysql updates form a valid query with data set #3 [x] Raw queries get output as defined with data set #0 [ ] Raw queries get output as defined with data set #1 [x] Raw queries get output as defined with data set #2 [ ] Raw queries get output as defined with data set #3 [x] Read only queries allow selects with data set #0 [ ] Read only queries allow selects with data set #1 [x] Read only queries allow selects with data set #2 [ ] Read only queries allow selects with data set #3 [x] Read only queries don't allow drops with data set #0 [ ] Read only queries don't allow drops with data set #1 [x] Read only queries don't allow drops with data set #2 [ ] Read only queries don't allow drops with data set #3 [x] Read only queries don't allow deletes with data set #0 [ ] Read only queries don't allow deletes with data set #1 [x] Read only queries don't allow deletes with data set #2 [ ] Read only queries don't allow deletes with data set #3 [x] Read only queries don't allow creates with data set #0 [ ] Read only queries don't allow creates with data set #1 [x] Read only queries don't allow creates with data set #2 [ ] Read only queries don't allow creates with data set #3 [x] Read only queries don't allow modifications with data set #0 [ ] Read only queries don't allow modifications with data set #1 [x] Read only queries don't allow modifications with data set #2 [ ] Read only queries don't allow modifications with data set #3 [x] Read only queries don't allow inserts with data set #0 [ ] Read only queries don't allow inserts with data set #1 [x] Read only queries don't allow inserts with data set #2 [ ] Read only queries don't allow inserts with data set #3 [x] Read only queries don't allow updates with data set #0 [ ] Read only queries don't allow updates with data set #1 [x] Read only queries don't allow updates with data set #2 [ ] Read only queries don't allow updates with data set #3 [x] Read only queries don't allow deletes with data set #0 [ ] Read only queries don't allow deletes with data set #1 [x] Read only queries don't allow deletes with data set #2 [ ] Read only queries don't allow deletes with data set #3 [x] Invalid select types throw a InvalidArgumentException with data set #0 [ ] Invalid select types throw a InvalidArgumentException with data set #1 [x] Invalid select types throw a InvalidArgumentException with data set #2 [ ] Invalid select types throw a InvalidArgumentException with data set #3 [x] Invalid from types throw a InvalidArgumentException with data set #0 [ ] Invalid from types throw a InvalidArgumentException with data set #1 [x] Invalid from types throw a InvalidArgumentException with data set #2 [ ] Invalid from types throw a InvalidArgumentException with data set #3 [x] Invalid group types throw a InvalidArgumentException with data set #0 [ ] Invalid group types throw a InvalidArgumentException with data set #1 [x] Invalid group types throw a InvalidArgumentException with data set #2 [ ] Invalid group types throw a InvalidArgumentException with data set #3 [x] Invalid where operators throw a InvalidArgumentException with data set #0 [ ] Invalid where operators throw a InvalidArgumentException with data set #1 [x] Invalid where operators throw a InvalidArgumentException with data set #2 [ ] Invalid where operators throw a InvalidArgumentException with data set #3 [x] Invalid join operators throw a InvalidArgumentException with data set #0 [ ] Invalid join operators throw a InvalidArgumentException with data set #1 [x] Invalid join operators throw a InvalidArgumentException with data set #2 [ ] Invalid join operators throw a InvalidArgumentException with data set #3 Column (phpOMS\tests\DataStorage\Database\Query\Column) [x] Default Count (phpOMS\tests\DataStorage\Database\Query\Count) [x] Default Expression (phpOMS\tests\DataStorage\Database\Query\Expression) [x] Default From (phpOMS\tests\DataStorage\Database\Query\From) [x] Default phpOMS\tests\DataStorage\Database\Query\GrammarTest: Basic sql query grammar [x] The grammar has the expected default values after initialization phpOMS\tests\DataStorage\Database\Query\MysqlGrammarTest: Mysql sql query grammar [x] The grammar has the expected default values after initialization Oracle Grammar (phpOMS\tests\DataStorage\Database\Query\Grammar\OracleGrammar) [x] Default Postgres Grammar (phpOMS\tests\DataStorage\Database\Query\Grammar\PostgresGrammar) [x] Default phpOMS\tests\DataStorage\Database\Query\SQLiteGrammarTest: SQLite sql query grammar [x] The grammar has the expected default values after initialization Sql Server Grammar (phpOMS\tests\DataStorage\Database\Query\Grammar\SqlServerGrammar) [x] Default Into (phpOMS\tests\DataStorage\Database\Query\Into) [x] Default Join Type (phpOMS\tests\DataStorage\Database\Query\JoinType) [x] Enum count [x] Unique [x] Enums Query Type (phpOMS\tests\DataStorage\Database\Query\QueryType) [x] Enum count [x] Unique [x] Enums Select (phpOMS\tests\DataStorage\Database\Query\Select) [x] Default Where (phpOMS\tests\DataStorage\Database\Query\Where) [x] Default Relation Type (phpOMS\tests\DataStorage\Database\RelationType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\DataStorage\Database\Schema\BuilderTest: Query builder for sql schemas [x] Mysql database drop forms a valid query with data set #0 [ ] Mysql database drop forms a valid query with data set #1 [x] Mysql database drop forms a valid query with data set #2 [ ] Mysql database drop forms a valid query with data set #3 [x] Mysql table drop forms a valid query with data set #0 [ ] Mysql table drop forms a valid query with data set #1 [x] Mysql table drop forms a valid query with data set #2 [ ] Mysql table drop forms a valid query with data set #3 [x] Mysql show tables form a valid query with data set #0 [ ] Mysql show tables form a valid query with data set #1 [x] Mysql show tables form a valid query with data set #2 [ ] Mysql show tables form a valid query with data set #3 [x] Mysql show fields form a valid query with data set #0 [ ] Mysql show fields form a valid query with data set #1 [x] Mysql show fields form a valid query with data set #2 [ ] Mysql show fields form a valid query with data set #3 [x] Mysql create tables form a valid query with data set #0 [ ] Mysql create tables form a valid query with data set #1 [x] Mysql create tables form a valid query with data set #2 [ ] Mysql create tables form a valid query with data set #3 [x] The grammar correctly deletes a table with data set #0 [ ] The grammar correctly deletes a table with data set #1 [x] The grammar correctly deletes a table with data set #2 [ ] The grammar correctly deletes a table with data set #3 phpOMS\tests\DataStorage\Database\Schema\GrammarTest: Basic sql query grammar [x] The grammar has the expected default values after initialization phpOMS\tests\DataStorage\Database\Schema\Grammar\MysqlGrammarTest: Mysql sql schema grammar [x] The grammar has the expected default values after initialization [x] The the grammar correctly creates and returns a database table [x] The grammar correctly deletes a table Oracle Grammar (phpOMS\tests\DataStorage\Database\Schema\Grammar\OracleGrammar) [x] Default Postgres Grammar (phpOMS\tests\DataStorage\Database\Schema\Grammar\PostgresGrammar) [x] Default phpOMS\tests\DataStorage\Database\Schema\Grammar\SQLiteGrammarTest: SQLite sql schema grammar [x] The grammar has the expected default values after initialization Sql Server Grammar (phpOMS\tests\DataStorage\Database\Schema\Grammar\SqlServerGrammar) [x] Default Query Type (phpOMS\tests\DataStorage\Database\Schema\QueryType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\DataStorage\Database\SchemaMapperTest: Mapper for the database schema [x] The tables can be returned [x] The fields of a table can be returned phpOMS\tests\DataStorage\LockExceptionTest: Lock exception [x] The lock exception is an instance of the runtime exception phpOMS\tests\DataStorage\Session\HttpSessionTest: Session data handler for http sessions [x] The session has the expected default values after initialization [x] Session data can be set and returned [x] Session data cannot be overwritten [x] Session data can be forced to overwrite [x] Session data can be removed [x] None-existing session data cannot be removed [x] A session id can be set and returned [x] A session can be locked [x] Locked sessions cannot be saved [x] A locked session cannot add or change data [x] A locked session cannot remove data phpOMS\tests\Dispatcher\DispatcherTest: Dispatcher for executing request endpoints [x] A route can be added and dispatched [x] The dispatcher can dispatch a function/closure [x] The dispatcher can dispatch a method as string representation of a controller [x] The dispatcher can dispatch a method as array representation of a controller [x] The dispatcher can dispatch a static method as string representation [x] The dispatcher can dispatch multiple destinations after another [x] The dispatcher can pass additional data to the destination [x] A invalid controller path throws a PathException [x] A invalid function path throws a Exception [x] A malformed dispatch path throws UnexpectedValueException phpOMS\tests\Event\EventManager: Event manager for managing and executing events [x] The event manager has the expected default values after initialization [x] New events can be added [x] Events can be cleared [x] Multiple callbacks can be added to an event [x] An event gets executed if all conditions and sub conditions are met [x] An event doesn't get executed if not all conditions and sub conditions are met [x] None-existing events cannot be executed/triggered [x] An event can be triggered with group and id regex matches [x] An event can be triggered with a fixed group definition and id regex matches [x] An event can be triggered with regex group matches and fixed id definition [x] A invalid regex match will not triggered an event [x] An event can be defined to reset after all conditions and subconditions are met. Then all conditions and sub conditions must be met again before it gets triggered again. [x] An event can be defined to not reset after all conditions and subconditions are met. Then an event can be triggered any time. [x] An event can be manually removed/detached [x] None-existing events cannot be manually removed/detached [x] An event can be defined to automatically remove itself after all conditions and subconditions are met and it is executed [x] Events can be imported from a file [x] Invalid event files cannot be imported and return a failure Extension (phpOMS\tests\Extension) [x] Extension mbstring [x] Extension curl [x] Extension imap [x] Extension pdo [x] Extension g d phpOMS\tests\Image\ThresholdingTest: Image thresholding [x] The thresholding is correctly applied to the image phpOMS\tests\Localization\Defaults\CityMapperTest: City database mapper [x] The model can be read from the database phpOMS\tests\Localization\Defaults\CityTest: City database model [x] The model has the expected member variables and default values phpOMS\tests\Localization\Defaults\CountryMapperTest: Country database mapper [x] The model can be read from the database phpOMS\tests\Localization\Defaults\CountryTest: Country database model [x] The model has the expected member variables and default values phpOMS\tests\Localization\Defaults\CurrencyMapperTest: Currency database mapper [x] The model can be read from the database phpOMS\tests\Localization\Defaults\CurrencyTest: Currency database model [x] The model has the expected member variables and default values phpOMS\tests\Localization\Defaults\IbanMapperTest: Iban database mapper [x] The model can be read from the database phpOMS\tests\Localization\Defaults\IbanTest: Iban database model [x] The model has the expected member variables and default values phpOMS\tests\Localization\Defaults\LanguageMapperTest: Language database mapper [x] The model can be read from the database phpOMS\tests\Localization\Defaults\LanguageTest: Language database model [x] The model has the expected member variables and default values phpOMS\tests\Localization\ISO3166CharEnumTest: ISO 3166 country codes [x] The ISO 3166 country code enum has the correct format of country codes [x] The ISO 3166 enum has only unique values [x] Region phpOMS\tests\Localization\ISO3166NameEnumTest: ISO 3166 country names [x] The ISO 3166 enum has only unique values [x] Region phpOMS\tests\Localization\ISO3166NumEnumTest: ISO 3166 country codes [x] The ISO 3166 country code enum has the correct format of country codes [x] Region phpOMS\tests\Localization\ISO3166NumEnumTest: ISO 3166 country codes [x] The ISO 3166 country code enum has the correct format of country codes [x] The ISO 3166 enum has only unique values [x] Region phpOMS\tests\Localization\ISO4217CharEnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has the correct format of currency codes [x] The ISO 4217 enum has only unique values phpOMS\tests\Localization\ISO4217DecimalEnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has the correct format of currency decimal places phpOMS\tests\Localization\ISO4217EnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has only unique values phpOMS\tests\Localization\ISO4217NumEnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has the correct format of currency codes phpOMS\tests\Localization\ISO4217SubUnitEnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has the correct format of currency sub units phpOMS\tests\Localization\ISO4217SymbolEnumTest: ISO 4217 currency codes [x] The ISO 4217 currency code enum has the correct number of currency symbols phpOMS\tests\Localization\ISO639EnumTest: ISO 639 language codes [x] The ISO 639 language code enum has only unique values [x] Language phpOMS\tests\Localization\ISO639x1EnumTest: ISO 639-1 language codes [x] The ISO 639-1 language code enum has the correct format of language codes [x] The ISO 639-1 enum has only unique values [x] Language phpOMS\tests\Localization\ISO639x2EnumTest: ISO 639-2 language codes [x] The ISO 639-2 language code enum has the correct format of language codes [x] The ISO 639-2 enum has only unique values [x] Language phpOMS\tests\Localization\ISO8601EnumArrayTest: ISO 8601 date time formats [x] The ISO 8601 date time format enum has the correct number of date time formats [x] The ISO 8601 enum has only unique values phpOMS\tests\Localization\L11nManagerTest: Localization manager for view templates [x] The localization manager has the expected default values after initialization [x] Language data can be loaded and output as plain text or html [x] An invalid localization source returns an error string [x] Language data can be loaded from a file [x] Multiple languages can be loaded from a file [x] The numeric value can be printed based on the localization [x] The percentage value can be printed based on the localization [x] The currency value can be printed based on the localization [x] The datetime value can be printed based on the localization phpOMS\tests\Localization\LanguageDetection\LanguageTest: Language detection [x] Detection phpOMS\tests\Localization\LocalizationTest: Localization for information such as language, currency, location, language specific formatting etc. [x] The localization has the expected default values after initialization [x] Setting a invalid language code throws InvalidEnumValue [x] Setting a invalid country code throws InvalidEnumValue [x] Setting a invalid timezone code throws InvalidEnumValue [x] Setting a invalid currency code throws InvalidEnumValue [x] Setting a invalid angle throws InvalidEnumValue [x] Setting a invalid temperature throws InvalidEnumValue [x] The country can be set and returned [x] The timezone can be set and returned [x] The language can be set and returned [x] The currency can be set and returned [x] The datetime can be set and returned [x] The decimal can be set and returned [x] The thousands can be set and returned [x] The angle can be set and returned [x] The temperature can be set and returned [x] The weight can be set and returned [x] The currency format can be set and returned [x] The precision can be set and returned [x] The length can be set and returned [x] The area can be set and returned [x] The volume can be set and returned [x] The speed can be set and returned [x] Localization data can be loaded from a locale file [x] Localization data can be loaded from a locale file [x] Localization data can be serialized and unserialized [x] If no locale file for a specified country exists or a wild card country is used the first match of a locale file based on the defined language is loaded [x] By default the english locale file will be loaded if no other locale file can be found phpOMS\Localization\Money: Money datatype for internal representation of money [x] The datatype has the expected member variables and default values [x] The datatype returns the correct default string representation (#,###.##) [x] The datatype returns up to 4 decimal places if requested (#,###.####) [x] The datatype returns the correct integer representation of a string with up to 4 decimal places also considering differences in decimal and thousands characters if requested for different localizations [x] The datatype allows to modify the value by overwriting it with new string characters or integers correctly [x] The datatype can print out money with different thousands, decimals and currency symbols as per definition by the user [x] The string character input is correctly serialized to the numeric representation [x] The string character input is correctly unserialized from a numeric representation [x] The datatype correctly adds and subtracts the different money representations in string, numeric or Money type [x] The datatype correctly multiplies and divides the money with numerics [x] The datatype correctly handles the absolute value [x] The datatype correctly handles the power operator phpOMS\tests\Localization\PhoneEnumTest: Country phone codes [x] The phone enum has the correct format of country phone numbers phpOMS\tests\Localization\TimeZoneEnumArrayTest: Time zone enum array [x] The time zone enum array has only unique values phpOMS\tests\Log\FileLoggerTest: File logger for saving log information in a local file [x] The logger has the expected default values after initialization [x] The file logger can automatically create a new instance if none exists [x] A log file for the output can be specified for the file logger [x] If no log file name is specified a log file per date is created [x] If no logs are performed no log file will be created [x] Logs with different levels get correctly stored in the log file [x] Log files can be analyzed for the highest perpetrator (IP address) [x] Logs can be read from the log file [x] Invalid log reads return empty log data [x] A line can be read from a log file [x] None-existing lines return on read empty log data [x] A verbose file logger automatically outputs log data [x] A verbose console log outputs log data [x] A invalid log type throws a InvalidEnumValue [x] The logger can perform timings for internal duration logging phpOMS\tests\Log\LogLevelTest: Log level enum [x] The log level enum has the correct number of log levels [x] The log level enum has only unique values [x] The log level enum has the correct values Zero Division Exception (phpOMS\tests\Math\Exception\ZeroDivisionException) [x] Exception phpOMS\tests\Math\Functions\BetaTest: Beta function [x] The log beta function can be approximated [x] The incomplete beta function can be approximated [x] The regularized beta function can be approximated phpOMS\tests\Math\Functions\FibonacciTest: Fibonacci functions [x] A number can be checked if it is a fibonacci number [x] A fibonacci number can be returned by index [x] The binet formula returns fibonacci numbers [x] The binet formula and the fibonacci formula return the same results phpOMS\tests\Math\Functions\FunctionsTest: Various math functions [x] The factorial of a number can be calculated [x] The binomial coefficient can be calculated [x] The ackerman function can be calculated [x] The multiplicative inverse module can be calculated [x] A number can be checked if it is odd [x] A number can be checked if it is even [x] The relative number can be calculated on a circular number system (e.g. month in a diverging business year) [x] The error function can be correctly approximated [x] The complementary error function can be correctly approximated [x] The generalized hypergeometric function can be correctly calculated phpOMS\tests\Math\Functions\GammaTest: Gamma function [x] The gamma function can be approximated [x] The gamma function can be calculated for integers [x] The gamma function can be approximated with the spouge formula [x] The gamma function can be approximated with the stirling formula [x] The gamma function can be approximated with the lanzos formula [x] The log gamma function can be approximated [x] The first incomplete gamma function can be approximated [x] The second incomplete gamma function can be approximated [x] The regularized incomplete gamma function can be approximated phpOMS\tests\Math\Geometry\ConvexHull\MonotoneChainTest: Monotone chain [x] A convex hull can be formed from multiple points on a plane phpOMS\tests\Math\Geometry\Shape\D2\CircleTest: Circle shape [x] The surface can be calculated [x] The perimeter can be calculated [x] The radius can be calculated with the surface [x] The radius can be calculated with the perimeter phpOMS\tests\Math\Geometry\Shape\D2\EllipseTest: Ellipse shape [x] The surface can be calculated [x] The perimeter can be calculated phpOMS\tests\Math\Geometry\Shape\D2\PolygonTest: Polygon shape [x] The location of a point can be checked relative to a polygon [x] The interior angle can be calculated [x] The exterior angle can be calculated [x] The perimeter can be calculated [x] The area can be calculated [x] The barycenter can be calculated [x] The regular area can be calculated with the side length [x] The regular area can be calculated with the radius phpOMS\tests\Math\Geometry\Shape\D2\QuadrilateralTest: Quadrilateral shape [x] The area can be calculated phpOMS\tests\Math\Geometry\Shape\D2\RectangleTest: Rectangle shape [x] The surface can be calculated [x] The perimeter can be calculated [x] The diagonal can be calculated phpOMS\tests\Math\Geometry\Shape\D2\TrapezoidTest: Trapezoid shape [x] The surface can be calculated [x] The perimeter can be calculated [x] The height can be calculated [x] The side lengths can be calculated phpOMS\tests\Math\Geometry\Shape\D2\TriangleTest: Triangle shape [x] The surface can be calculated [x] The perimeter can be calculated [x] The height can be calculated [x] The hypotenuse can be calculated phpOMS\tests\Math\Geometry\Shape\D3\ConeTest: Cone shape [x] The volume can be calculated [x] The surface can be calculated [x] The slant height can be calculated [x] The height can be calculated with the volume phpOMS\tests\Math\Geometry\Shape\D3\CuboidTest: Cuboid shape [x] The volume can be calculated [x] The surface can be calculated phpOMS\tests\Math\Geometry\Shape\D3\CylinderTest: Cylinder shape [x] The volume can be calculated [x] The surface can be calculated [x] The lateral surface can be calculated phpOMS\tests\Math\Geometry\Shape\D3\PrismTest: Prism shape [x] The volume can be calculated with the length [x] The volume can be calculated with the radius [x] The surface can be calculated phpOMS\tests\Math\Geometry\Shape\D3\RectangularPyramidTest: Rectangular pyramid shape [x] The volume can be calculated [x] The surface can be calculated [x] The lateral surface can be calculated phpOMS\tests\Math\Geometry\Shape\D3\SphereTest: Sphere shape [x] The volume can be calculated [x] The surface can be calculated [x] The distance on a sphere can be calculated [x] The sphere can be created by its radius [x] The sphere can be created by its volume [x] The sphere can be created by its surface phpOMS\tests\Math\Geometry\Shape\D3\TetrahedronTest: Tetrahedron shape [x] The volume can be calculated [x] The surface can be calculated [x] The face area can be calculated phpOMS\tests\Math\Matrix\CholeskyDecompositionTest: Cholesky decomposition [x] The decomposition can be created and the original matrix can be computed [x] The decomposition matrix has the expected values [x] A matrix can be checked for symmetric positivity [x] The equation Ax = b can be solved [x] A invalid vector throws a InvalidDimensionException phpOMS\tests\Math\Matrix\EigenvalueDecompositionTest: Eigenvalue decomposition [x] A matrix can be checked for symmetry [x] The eigenvalues can be calculated for a symmetric matrix [x] The V matrix of the decomposition can be calculated for a symmetric matrix [x] The D matrix of the decomposition can be calculated for a symmetric matrix [x] The eigenvalues can be calculated for a none-symmetric matrix [x] The D matrix of the decomposition can be calculated for a none-symmetric matrix [x] The decomposition can be created and the original matrix can be computed for a symmetric matrix [x] The decomposition can be created and the original matrix can be computed for a none-symmetric matrix [x] Complex eigenvalue decomposition [x] Complex division [x] Complex division [x] Complex division [x] Complex division Invalid Dimension Exception (phpOMS\tests\Math\Matrix\Exception\InvalidDimensionException) [x] Exception phpOMS\tests\Math\Matrix\IdentityMatrixTest: Identity matrix [x] The identity matrix is the identity phpOMS\tests\Math\Matrix\LUDecompositionTest: LU decomposition [x] The L matrix of the decomposition can be calculated [x] The U matrix of the decomposition can be calculated [x] The matrix can be checked for singularity [x] The equation Ax = b can be solved for a none-singular matrix [x] The pivots of the decomposition can be calculated [x] The equation Ax = b can be solved for a singular matrix [x] The decomposition can be created and the original matrix can be computed [x] The determinat can be calculated [x] A invalid vector throws a InvalidDimensionException phpOMS\tests\Math\Matrix\MatrixTest: Matrix operations [x] A matrix can return its dimension [x] A matrix can be right-hand multiplied with a matrix [x] A matrix can be right-hand multiplied with a scalar [x] A scalar can be added to every matrix element [x] A scalar can be subtracted from every matrix element [x] Two matrices can be added to each other [x] Two matrices can be subtracted from each other [x] The determinant of a matrix can be calculated [x] A symmetric matrix can be validated for symmetry [x] A none-symmetric matrix cannot be validated for symmetry [x] A matrix can be transposed [x] A matrix equation Ax = b can be solved for x [x] The rank of a matrix can be calculated [x] Inverse [x] The upper triangular matrix can be calculated [ ] Lower triangular [x] The matrix elements can be set and returned [x] A matrix can be accessed like a 1-dimensional array [x] Sub matrices can be extracted from a matrix [x] Setting a matrix element outside of the dimensions throws a InvalidDimensionException [x] Returning a matrix element outside of the dimensions throws a InvalidDimensionException [x] Adding a matrix with a different dimension to a matrix throws a InvalidDimensionException [x] Subtracting a matrix from a different dimension to a matrix throws a InvalidDimensionException [x] Multiplying a matrix with a different n x m dimension to a matrix throws a InvalidDimensionException phpOMS\tests\Math\Matrix\QRDecompositionTest: QR decomposition [x] A matrix can be checked if it has a full rank [x] The Q matrix of the decomposition can be calculated [x] The R matrix of the decomposition can be calculated [x] The decomposition can be created and the original matrix can be computed [x] The equation Ax = b can be solved phpOMS\tests\Math\Matrix\VectorTest: Vector operations [x] The vector has the expected default values after initialization [x] The vector values can be set and returned [x] The vector dimension can be returned phpOMS\tests\Math\Number\ComplexTest: Complex number operations [x] The complex number has the expected default values after initialization [x] The real and imaginary part can be set during initialization and returned [x] A complex number can be added to a complex number [x] A real number can be added to a complex number [x] A complex number can be subtracted from a complex number [x] A real number can be subtracted from a complex number [x] A complex number can be multiplied with a complex number [x] A real number can be multiplied with a complex number [x] A complex number can be divided by a complex number number [x] A complex number can be divided by a real number [x] A complex number can be conjugated [x] The reciprocal of a complex number can be calculated [x] A complex number can be squared [x] The real power of a complex number can be calculated [x] The absolute value of a complex number can be calculated [x] The square root of a complex number can be calculated phpOMS\tests\Math\Number\IntegerTest: Integer operations [x] A value can be checked to be an integer [x] An integer can be factorized [x] The Pollard's Roh algorithm calculates a factor of an integer [x] The Fermat factorization calculates a factor of an integer [x] A even number for the fermat factorization throws a InvalidArgumentException [x] The greatest common divisor can be calculated phpOMS\tests\Math\Number\NaturalTest: Natural number operations [x] A number can be checked to be natural Number Type (phpOMS\tests\Math\Number\NumberType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Math\Number\NumbersTest: General number utilities [x] A number can be checked to be perfect [x] A number can be checked to be self-describing [x] A number can be checked to be squared [x] The amount of trailing zeros can be counted phpOMS\tests\Math\Number\PrimeTest: Prime number utilities [x] A number can be checked to be a prime number [x] A prime number can be generated with the sieve of erathosthenes [x] A number can be checked to be prime with the rabin test [x] Mersenne numbers can be calculated [x] A number can be checked to be a mersenne number phpOMS\tests\Math\Numerics\IntegrationTest: Numeric integration [x] Integration by summing up rectangle areas from the left side [x] Integration by summing up rectangle areas from the right side [x] Integration by summing up rectangle areas from the middle [x] Integration by summing up trapezoid areas [x] Integration by using the simpson formula phpOMS\tests\Math\Numerics\Interpolation\CubicSplineInterpolationTest: Cubic spline interpolation [x] The spline interpolation using the first derivative is correct [x] The spline interpolation using the second derivative is correct [x] The spline interpolation for out of bounds values uses linear extrapolation phpOMS\tests\Math\Numerics\Interpolation\LagrangeInterpolationTest: Lagrange interpolation [x] The lagrange interpolation is correct phpOMS\tests\Math\Numerics\Interpolation\LinearInterpolationTest: Linear interpolation [x] The linear interpolation is correct phpOMS\tests\Math\Parser\EvaluatorTest: Evaluator for simple math formulas [x] Basic formulas using +, -, *, /, () and ^ can be evaluated [x] Badly formed formulas return null as result phpOMS\tests\Math\Statistic\AverageTest: Averages [x] The average change of a dataset is correctly calculated [x] The average mean of angles is calculated correctly [x] The arithmetic mean is correctly calculated [x] The weighted mean is correctly calculated [x] The geometric mean is correctly calculated [x] The harmonic mean is correctly calculated [x] The moving average is correctly calculated [x] The weighted moving average is correctly calculated [x] Different weight and dataset dimensions throw a InvalidDimensionException [x] An empty dataset for the arithmetic mean throws a ZeroDivisionException [x] An empty dataset for the moving average throws a Exception [x] An empty dataset for the harmonic mean throws a ZeroDivisionException [x] An empty dataset for the geometric mean throws a ZeroDivisionException [x] Invalid angle mean [x] Invalid angle mean [x] A dataset with a 0 element throws a ZeroDivisionException [x] The mode is correctly calculated [x] The median is correctly calculated Basic (phpOMS\tests\Math\Statistic\Basic) [x] Frequency phpOMS\tests\Math\Statistic\CorrelationTest: Correlations [x] The correlation coefficient (Bravis Person) is calculated correctly [x] The correlation coefficient (Bravis Person) is calculated correctly on a sample [x] The autocorrelation coefficient is calculated correctly [x] The portmanteau test (Box Pierce) is correct [x] The portmanteau test (Ljung Box) is correct Error (phpOMS\tests\Math\Statistic\Forecast\Error) [x] Forecast error [x] Error percentage [x] Mean errors [x] M a s e [x] M s s e [x] Scaled error [x] S s e [x] Coefficient of determination [x] M a p e [x] S m a p e [x] M a d Forecasts (phpOMS\tests\Math\Statistic\Forecast\Forecasts) [x] Forecast interval phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest: Level level regression [x] The regression parameters are calculated correctly [x] The slope is calculated correctly [x] The elasticity is calculated correctly [x] The standard error of the population is calculated correctly [x] The standard error of the sample is calculated correctly [x] The prediction interval is calculated correctly [x] Different dimension sizes for x and y coordinates throw a InvalidDimensionException phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest: Level log regression [x] The regression parameters are calculated correctly [x] The slope is calculated correctly [x] The elasticity is calculated correctly [x] Different dimension sizes for x and y coordinates throw a InvalidDimensionException phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest: Log level regression [x] The regression parameters are calculated correctly [x] The slope is calculated correctly [x] The elasticity is calculated correctly [x] Different dimension sizes for x and y coordinates throw a InvalidDimensionException phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest: Log log regression [x] The regression parameters are calculated correctly [x] The slope is calculated correctly [x] The elasticity is calculated correctly [x] Different dimension sizes for x and y coordinates throw a InvalidDimensionException phpOMS\tests\Math\Statistic\Forecast\Regression\PolynomialRegressionTest: Polynomial regression [x] The regression parameters are calculated correctly [x] Different dimension sizes for x and y coordinates throw a InvalidDimensionException phpOMS\tests\Math\Statistic\MeasureOfDispersionTest: Measure of dispersion [x] The range of a dataset is correctly calculated [x] The standard deviation is correctly calculated [x] The empirical covariance is correctly calculated [x] The empirical covariance on a sample is correctly calculated [x] The sample variance is correctly calculated [x] The population/empirical variance is correctly calculated [x] The mean deviations are correctly calculated [x] The mean deviations for every dataset element is correctly calculated [x] The empirical variation coefficient is correctly calculated [x] The interquartile range is correctly calculated [x] The empirical variation coefficient with a mean of 0 throws a ZeroDivisionException [x] An empty dataset in the empirical covariance throws a ZeroDivisionException [x] Different dataset sizes in the empirical covariance throw a InvalidDimensionException [x] An empty dataset in the sample variance throws a ZeroDivisionException [x] An empty dataset in the empirical/population variance throws a ZeroDivisionException [x] Invalid sample covariance dimension Bernoulli Distribution (phpOMS\tests\Math\Stochastic\Distribution\BernoulliDistribution) [x] Pmf [x] Mode [x] Mean [x] Cdf [x] Median [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Entropy [x] Mgf [x] Fisher information [x] Invalid pmf parameter Beta Distribution (phpOMS\tests\Math\Stochastic\Distribution\BetaDistribution) [x] Mean [x] Mode [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Pdf [x] Cdf [x] Mgf Binomial Distribution (phpOMS\tests\Math\Stochastic\Distribution\BinomialDistribution) [x] Pmf [x] Cdf [x] Mean [x] Median [x] Mode [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Mgf [x] Fisher information Cauchy Distribution (phpOMS\tests\Math\Stochastic\Distribution\CauchyDistribution) [x] Median mode [x] Pdf [x] Cdf [x] Entropy Chi Squared Distribution (phpOMS\tests\Math\Stochastic\Distribution\ChiSquaredDistribution) [x] Hypothesis false [x] Degrees of freedom [x] Mode [x] Mean [x] Variance [x] Standard deviation [x] Median [x] Skewness [x] Ex kurtosis [x] Mgdf [x] Pdf [x] Cdf [x] Hypothesis size exception [x] Hypothesis degrees of freedom exception [x] Pdf out of bounds exception [x] Mgf out of bounds exception Exponential Distribution (phpOMS\tests\Math\Stochastic\Distribution\ExponentialDistribution) [x] Pdf [x] Cdf [x] Mean [x] Mode [x] Median [x] Mgf [x] Variance [x] Standard deviation [x] Ex kurtosis [x] Skewness [x] Mgf exception FDistribution (phpOMS\tests\Math\Stochastic\Distribution\FDistribution) [x] Mean [x] Mode [x] Variance [x] Standard deviation [x] Skewness [x] Pdf [x] Cdf Gamma Distribution (phpOMS\tests\Math\Stochastic\Distribution\GammaDistribution) [x] Pdf scale [x] Pdf alpha bete [x] Cdf scale [x] Cdf alpha bete [x] Pdf integer scale [x] Pdf integer rate [x] Mean scale [x] Mean rate [x] Variance scale [x] Variance rate [x] Standard deviation scale [x] Standard deviation rate [x] Ex kurtosis [x] Skewness [x] Mgf scale [x] Mgf rate [x] Mode scale [x] Mode rate Geometric Distribution (phpOMS\tests\Math\Stochastic\Distribution\GeometricDistribution) [x] Pmf [x] Cdf [x] Mode [x] Mean [x] Variance [x] Get standard deviation [x] Skewness [x] Ex kurtosis [x] Median [x] Mgf Hypergeometric Distribution (phpOMS\tests\Math\Stochastic\Distribution\HypergeometricDistribution) [x] Mean [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Mode [x] Pmf [x] Cdf Laplace Distribution (phpOMS\tests\Math\Stochastic\Distribution\LaplaceDistribution) [x] Pdf [x] Cdf [x] Mode [x] Mean [x] Median [x] Ex kurtosis [x] Skewness [x] Variance [x] Standard deviation [x] Mgf [x] Mgf exception Log Distribution (phpOMS\tests\Math\Stochastic\Distribution\LogDistribution) [x] Pmf [x] Cdf [x] Mean [x] Mode [x] Variance [x] Standard deviation [x] Mgf Log Normal Distribution (phpOMS\tests\Math\Stochastic\Distribution\LogNormalDistribution) [x] Pdf [x] Cdf [x] Mean [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Median [x] Mode [x] Entropy [x] Fisher information Logistic Distribution (phpOMS\tests\Math\Stochastic\Distribution\LogisticDistribution) [x] Pdf [x] Cdf [x] Mode [x] Mean [x] Median [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Entropy Normal Distribution (phpOMS\tests\Math\Stochastic\Distribution\NormalDistribution) [x] Pdf [x] Cdf [x] Mean [x] Median [x] Mode [x] Skewness [x] Ex kurtosis [x] Variance [x] Standard deviation [x] Sample size calculation [x] Sample size infinite calculation [x] Mgf [x] Fisher information Pareto Distribution (phpOMS\tests\Math\Stochastic\Distribution\ParetoDistribution) [x] Pdf [x] Cdf [x] Mean [x] Variance [x] Standard deviation [x] Ex kurtosis [x] Skewness [x] Median [x] Mode [x] Entropy [x] Fisher information Poisson Distribution (phpOMS\tests\Math\Stochastic\Distribution\PoissonDistribution) [x] Pmf [x] Cdf [x] Mode [x] Mean [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Median [x] Fisher information [x] Mgf TDistribution (phpOMS\tests\Math\Stochastic\Distribution\TDistribution) [x] Mean [x] Median [x] Mode [x] Variance [x] Standard deviation [x] Ex kurtosis [x] Skewness [x] Cdf Uniform Distribution Continuous (phpOMS\tests\Math\Stochastic\Distribution\UniformDistributionContinuous) [x] Pdf [x] Cdf [x] Mode [x] Mean [x] Median [x] Variance [x] Standard deviation [x] Skewness [x] Ex kurtosis [x] Mgf Uniform Distribution Discrete (phpOMS\tests\Math\Stochastic\Distribution\UniformDistributionDiscrete) [x] Pmf [x] Cdf [x] Skewness [x] Mean [x] Median [x] Variance [x] Standard deviation [x] Ex kurtosis [x] Mgf [x] Cdf exception upper [x] Cdf exception lower Weibull Distribution (phpOMS\tests\Math\Stochastic\Distribution\WeibullDistribution) [x] Pdf [x] Cdf [x] Mean [x] Median [x] Mode [x] Variance [x] Standard deviation [x] Entropy [x] Skewness ZTesting (phpOMS\tests\Math\Stochastic\Distribution\ZTesting) [x] Hypothesis false [x] Z test [x] Z test values phpOMS\tests\Math\Stochastic\NaiveBayesClassifierTest: Naive bayes classifier for numeric values and strings/attributes [x] The classification of strings/attributes is correct [x] The classification of numeric values is correct phpOMS\tests\Math\Topology\Metrics2DTest: Metric/distance calculations [x] The manhattan distance can be calculated [x] The euclidean distance can be calculated [x] The chebyshev distance can be calculated [x] The octile distance can be calculated [x] The minkowski distance can be calculated [x] The canberra distance can be calculated [x] The bray-curtis distance can be calculated [x] The angular distance can be calculated [x] The hamming distance can be calculated [x] The ulam distance can be calculated [x] Different dimension sizes for the coordinates in the hamming metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the ulam metric throw a InvalidDimensionException phpOMS\tests\Math\Topology\MetricsNDTest: Metric/distance calculations [x] The manhattan distance can be calculated [x] The euclidean distance can be calculated [x] The chebyshev distance can be calculated [x] The minkowski distance can be calculated [x] The canberra distance can be calculated [x] The bray-curtis distance can be calculated [x] The angular distance can be calculated [x] The hamming distance can be calculated [x] Different dimension sizes for the coordinates in the manhattan metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the euclidean metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the chebyshev metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the minkowski metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the canberra metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the Bray Curtis metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the angular separation metric throw a InvalidDimensionException [x] Different dimension sizes for the coordinates in the hamming metric throw a InvalidDimensionException Cli Header (phpOMS\tests\Message\Cli\CliHeader) [x] Defaults [x] Value input output [x] Has key [x] Invalid overwrite [x] Overwrite [x] Remove [ ] The header can generate default http headers based on status codes [x] Account [x] Locked header set [x] Locked header remove Cli Request (phpOMS\tests\Message\Cli\CliRequest) [x] Default [x] O s input output [x] Method input output [x] Input output uri string [x] The url hashes for the different paths get correctly generated [x] Input output l 11n [x] Data input output [x] Has data [x] Invalid overwrite [x] Overwrite [x] To string Cli Response (phpOMS\tests\Message\Cli\CliResponse) [x] Default [x] Set get [x] Response data can be turned into an array [x] A response with json as content-type is automatically rendered as json data [x] Invalid response data results in an empty array [x] Invalid response data results in an empty render phpOMS\tests\Message\HeaderAbstractTest: Abstract header for requests/responses [x] The the status code can be set and returned Browser Type (phpOMS\tests\Message\Http\BrowserType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Message\Http\HttpHeaderTest: Header for http requests/responses [x] The header has the expected default values after initialization [x] Security policy headers get correctly identified [x] Header data can be set, checked for existence and returned [x] Header data can be forced to get overwritten [x] By default header data doesn't get overwritten [x] Header data can be removed [x] None-existing header data cannot be removed [x] Account data can be set and returned [x] Data can be defined as downloadable [x] A header can be locked [x] A locked header cannot add new data [x] A locked header cannot remove data [x] The header can generate default http headers based on status codes [x] Security header data cannot be changed once defined phpOMS\tests\Message\Http\HttpRequestTest: HttpRequest wrapper for http requests [x] The request has the expected default values after initialization [x] The OS can be set and returned [x] The browser can be set and returned [x] The request method can be set and returned [x] The request referer can be returned [x] The route verb gets correctly inferred from the request method [x] The request is correctly constructed [x] The request langauge can be returned [x] The url hashes for the different paths get correctly generated [x] Request data can be forcefully overwritten [x] Request data is not overwritten by default [x] The uri can be changed and returned [x] Json data can be read from the request [x] None-existing json data reads return empty data [x] Invalid json data returns empty data [x] List data can be read from the request [x] None-existing list data reads return empty data [x] Request data can be read with pattern matching [x] In case of no pattern matches empty data is returned [x] A request with a path can be correctly casted to a string [x] A request with a path and manually added data can be correctly casted to a string [x] A request with a path, query parameters and manually added data can be correctly casted to a string [x] A rest request can be made from a request and the result can be read [ ] A request can be made with post data [ ] A request can be made with json data [ ] A request can be made with multipart data [ ] If no language can be identified en is returned [ ] If no locale can be identified en_US is returned [ ] A none-mobile request is recognized as none-mobile [ ] If the OS type is unknown a unknwon OS type is returned [ ] If the browser type is unknown a unknwon browser type is returned [x] A invalid https port throws a OutOfRangeException [x] A Invalid route verb throws a Exception phpOMS\tests\Message\Http\ResponseTest: HttpResponse wrapper for http responses [x] The response has the expected default values after initialization [x] Response data can be set and returned [x] Response data can be removed [x] None-existing response data cannot be removed [x] Test disabling output buffering [x] The response langauge can be returned [x] Response data can be turned into an array [x] A response with json as content-type is automatically rendered as json data [x] Json data can be decoded from the response data [x] A html response can be forced to minimize the content by removing newlines and whitespaces [x] None-html responses cannot be forced to minimize the content by removing newlines and whitespaces [x] Invalid response data results in an empty array [x] Invalid response data results in an empty render OSType (phpOMS\tests\Message\Http\OSType) [x] Enum count [x] Unique Request Method (phpOMS\tests\Message\Http\RequestMethod) [x] Enum count [x] Unique [x] Enums Request Status Code (phpOMS\tests\Message\Http\RequestStatusCode) [x] Enum count [x] Unique [x] Enums Request Status (phpOMS\tests\Message\Http\RequestStatus) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Message\Http\RestTest: Rest request wrapper [x] A get request successfully returns the expected result [x] A post request with data successfully returns the expected result [x] A put request with data successfully returns the expected result [x] A delete request with data successfully returns the expected result [x] A get request with data successfully returns the expected result [ ] Json request [ ] Multi request phpOMS\tests\Message\MailHandlerTest: Abstract mail handler [x] Default [x] From input output [x] Invalid from input output [x] Content type input output [x] Add to [x] Invalid add to [x] Add c c [x] Invalid add c c [x] Add b c c [x] Invalid add b c c [x] Add reply to [x] Invalid add reply to [x] Missing address pre send [x] Addr format [x] Custom header input output [x] Invalid custom header input output [x] Email parsing [x] Html [x] Attachment [x] String attachment [x] Embedded image [x] String embedded image [x] Invalid attachment path [x] Invalid embedded image [x] Quoted printable dkim header [x] Canonicalized dkim header [x] Canonicalized dkim body phpOMS\tests\Message\MailHandlerTest: Abstract mail handler [ ] Connect [ ] Boxes [ ] Boxes input output delte [ ] Mailbox info [ ] Count mail [ ] Count recent [ ] With actual mail phpOMS\tests\Message\MailHandlerTest: Abstract mail handler [ ] Send text with mail [ ] Send html with mail [ ] Send inline with mail [ ] Send attachment with mail [ ] Send alt with mail [ ] Send alt inline with mail [ ] Send alt attachment with mail [ ] Send plain with mail [ ] Send plain d k i m with mail [ ] Send plain d k i m sign with mail [ ] Send plain sign with mail [ ] Send i cal alt with mail with data set "Valid method: request (default)" [ ] Send i cal alt with mail with data set "Invalid method" [ ] Send i cal alt with mail with data set "Missing method" [ ] Send i cal alt attachment with mail with data set "Valid method: request (default)" [ ] Send i cal alt attachment with mail with data set "Invalid method" [ ] Send i cal alt attachment with mail with data set "Missing method" [ ] Send text with sendmail [ ] Send html with sendmail [ ] Send inline with sendmail [ ] Send attachment with sendmail [ ] Send alt with sendmail [ ] Send alt inline with sendmail [ ] Send alt attachment with sendmail [ ] Send plain with sendmail [ ] Send plain d k i m with sendmail [ ] Send plain d k i m sign with sendmail [ ] Send plain sign with sendmail [ ] Send i cal alt with sendmail with data set "Valid method: request (default)" [ ] Send i cal alt with sendmail with data set "Invalid method" [ ] Send i cal alt with sendmail with data set "Missing method" [ ] Send i cal alt attachment with sendmail with data set "Valid method: request (default)" [ ] Send i cal alt attachment with sendmail with data set "Invalid method" [ ] Send i cal alt attachment with sendmail with data set "Missing method" [ ] Send text with smtp [ ] Send html with smtp [ ] Send inline with smtp [ ] Send attachment with smtp [ ] Send alt with smtp [ ] Send alt inline with smtp [ ] Send alt attachment with smtp [ ] Send plain with smtp [ ] Send plain d k i m with smtp [ ] Send plain d k i m sign with smtp [ ] Send plain sign with smtp [ ] Send i cal alt with smtp with data set "Valid method: request (default)" [ ] Send i cal alt with smtp with data set "Invalid method" [ ] Send i cal alt with smtp with data set "Missing method" [ ] Send i cal alt attachment with smtp with data set "Valid method: request (default)" [ ] Send i cal alt attachment with smtp with data set "Invalid method" [ ] Send i cal alt attachment with smtp with data set "Missing method" phpOMS\tests\Message\MailHandlerTest: Abstract mail handler [ ] Connect [ ] Boxes [ ] With actual mail [ ] Mailbox info [ ] Count mail [ ] Count recent phpOMS\tests\Message\RequestAbstractTest: Abstract request [x] Request data can be set and returned [x] A invalid data key returns null [x] Request data can be set and returned with correct types phpOMS\tests\Message\ResponseAbstractTest: Abstract response [x] The response has the expected default values after initialization [x] The response can be json serialized [x] Data can be set and returned for the response Header (phpOMS\tests\Message\Socket\Header) [ ] Placeholder Packet Manager (phpOMS\tests\Message\Socket\PacketManager) [ ] Placeholder Packet Type (phpOMS\tests\Message\Socket\PacketType) [x] Enum count [x] Unique [x] Enums Request (phpOMS\tests\Message\Socket\Request) [ ] Placeholder Response (phpOMS\tests\Message\Socket\Response) [ ] Placeholder phpOMS\tests\Model\Html\FormElementGeneratorTest: Form element generator [x] A text input element can be generated [x] A text input element can be generated with a custom value [x] A datetime input element can be generated with custom formatting [x] A checkbox element can be generated [x] A checkbox element can be generated with a localized label element [x] A radio element can be generated [x] A radio element can be generated with a localized label element [x] A label element can be generated [x] A localized label element can be generated [x] A textarea element can be generated [x] A textarea element can be generated with a custom value [x] A select element can be generated [x] A localized select element can be generated [x] A missing or invalid element type generates a INVALID output phpOMS\tests\Model\Html\HeadTest: Html head [x] The head has the expected default values after initialization [x] The title can be set and returned [x] The style can be set and returned [x] The script can be set and returned [x] The language can be set and returned [x] The assets can be set and rendered [x] The assets can be set and rendered at the end of the document [x] The assets can be set and rendered with attributes [x] The assets can be set and rendered at the end of the document with attributes phpOMS\tests\Model\Html\MetaTest: Html meta data [x] The meta data has the expected default values after initialization [x] A keyword can be added and returned [x] The author can be set and returned [x] The charset can be set and returned [x] The description can be set and returned [x] A property can be set and returned [x] A itemprop can be set and returned [x] A name can be set and returned [x] The meta data can be rendered Dom Action (phpOMS\tests\phpOMS\Model\Message\DomAction) [x] Enum count [x] Unique [x] Enums Dom (phpOMS\tests\phpOMS\Model\Message\Dom) [x] Default [x] Set get Form Validation (phpOMS\tests\phpOMS\Model\Message\FormValidation) [x] Default [x] Set get Notify (phpOMS\tests\phpOMS\Model\Message\Notify) [x] Default [x] Set get Redirect (phpOMS\tests\phpOMS\Model\Message\Redirect) [x] Default [x] Set get Reload (phpOMS\tests\phpOMS\Model\Message\Reload) [x] Default [x] Set get Invalid Module Exception (phpOMS\tests\Module\Exception\InvalidModuleException) [x] Exception Invalid Theme Exception (phpOMS\tests\Module\Exception\InvalidThemeException) [x] Exception phpOMS\tests\Module\InstallerAbstractTest: Abstract module installer [x] Invalid or missing module status file throws exception during installation phpOMS\tests\Module\ModuleAbstractTest: Abstract module [x] The constant values of the abstract module are overwritten by the extension [x] The name of the module can be returned [x] The dependencies of the module can be returned [x] The providings of the module can be returned [x] A module can receive information and functionality from another module [x] A module can load its own localization/language dataset [x] A invalid language or theme returns in an empty localization/language dataset [x] The module can automatically generate a json response based on provided data for the frontend [x] The module can automatically generate a json response based on provided data [x] A model can be created [x] Multiple models can be generated [x] A model can be updated [x] A model can be deleted [x] A model relation can be created [x] The model CRUD functions can be called with a closure phpOMS\tests\Module\ModuleInfoTest: Module info file manager [x] A info file can be correctly loaded [x] A info file can be modified [x] A invalid info file path load throws a PathException [x] A invalid info file path update throws a PathException [x] A invalid change data throws a InvalidArgumentException phpOMS\tests\Module\NullModuleTest: Basic module functionality [x] The null module is an instance of the module abstract [x] A invalid module method call will create an error log phpOMS\tests\Module\PackageManagerTest: Manager for install/update packages [x] A package can be installed [x] A package which didn't get extracted cannot be loaded and throws a PathException [x] A invalid package cannot be installed and throws a Exception [x] A invalid package key doesn't validate the package [x] A invalid package content doesn't validate the package [x] The temporarily extracted package can be cleaned up phpOMS\tests\Module\StatusAbstractTest: Abstract module status [x] Invalid module path activation phpOMS\tests\Module\UninstallerAbstractTest: Abstract module uninstaller [x] A missing database schema will not perform any database operations phpOMS\tests\PreloaderTest: Class preloader [x] Preloading phpOMS\tests\WebRouter\RouteVerbTest: Route verb enum [x] The route verb enum has the correct values [x] The route verb enum has only unique values phpOMS\tests\Router\SocketRouterTest: Router for socket requests [x] The route result for an empty request is empty [x] A none-existing routing file cannot be imported [x] A existing routing file can be imported [x] A matching route returns the destinations [x] The routes can be removed from the router [x] Routes can be added dynamically [x] Routes only match if the permissions match [x] Routes don't match if the permissions don't match [x] A data validation pattern validates matches correctly [x] A data validation pattern invalidates missmatches [x] A uri can be used for data population phpOMS\tests\Router\WebRouterTest: Router for web requests [x] The route result for an empty request is empty [x] A none-existing routing file cannot be imported [x] A existing routing file can be imported [x] A matching route returns the destinations [x] The routes can be removed from the router [x] Invalid routing verbs don't match even if the route matches [x] Routes can be added dynamically [x] Routes which require a CSRF token can only match with a CSRF token [x] Routes which require a CSRF token don't match without a CSRF token [ ] Routes only match if the permissions match [ ] Routes don't match if the permissions don't match [x] A data validation pattern validates matches correctly [x] A data validation pattern invalidates missmatches [x] A uri can be used for data population phpOMS\tests\Security\EncryptionHelperTest: Basic php source code security inspection [x] Shared key [x] Paired key [x] File encryption phpOMS\tests\Security\GuardTest: Basic php source code security inspection [x] Safe path [x] Unslash phpOMS\tests\Security\PhpCodeTest: Basic php source code security inspection [x] A file with unicode characters gets correctly identified [x] A file with no unicode characters gets correctly identified [x] A file with no disabled functions gets correctly identified [x] A file with deprecated functions gets correctly identified [x] A file with no deprecated functions gets correctly identified [x] A file hash comparison is successful if the file generates the same hash [x] A file hash comparison is unsuccessful if the file generates a different hash [x] Two equal strings validate as the same [x] Two different strings don't validate as the same Client Connection (phpOMS\tests\Socket\Client\ClientConnection) [ ] Placeholder Client (phpOMS\tests\Socket\Client\Client) [ ] Setup t c p socket Null Client Connection (phpOMS\tests\Socket\Client\NullClientConnection) [x] Default Client Manager (phpOMS\tests\Socket\Server\ClientManager) [ ] Placeholder Server (phpOMS\tests\Socket\Server\Server) [ ] Setup t c p socket phpOMS\tests\Stdlib\Base\AddressTest: Address type [x] The address has the expected default values after initialization [x] The fao can be set and returned [x] The recipient can be set and returned [x] The location can be set and returned [x] The address can be turned into array data [x] The address can be json serialized Address Type (phpOMS\tests\Stdlib\Base\AddressType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Stdlib\Base\EnumArrayTest: Enum array type [x] A valid enum name returns the enum value [x] A valid enum name can be validated [x] A invalid enum name doesn't validate [x] All enum name/value pairs can be returned [x] A valid enum value can be checked for existence [x] A invalid enum value doesn't validate [x] A invalid enum name throws a OutOfBoundsException [x] The amount of enum values can be returned [x] A random enum value can be returned phpOMS\tests\Stdlib\Base\EnumTest: Enum type [x] A valid enum name can be validated [x] A invalid enum name doesn't validate [x] All enum name/value pairs can be returned [x] A valid enum value can be checked for existence [x] A invalid enum value doesn't validate [x] A random enum value can be returned [x] A valid enum name returns the enum value [x] The amount of enum values can be returned [x] A valid enum value returns the enum name [x] Binary flags validate if they are set [x] Binary flags don't validate if they are not set [x] A invalid enum name returns null Invalid Enum Name (phpOMS\tests\Stdlib\Base\Exception\InvalidEnumName) [x] Exception Invalid Enum Value (phpOMS\tests\Stdlib\Base\Exception\InvalidEnumValue) [x] Exception phpOMS\tests\Stdlib\Base\HeapTest: Heap [x] A list of elements can be turned into a heap [x] Elements get correctly pushed to the heap [x] A element can be added to a heap at the correct position [x] Heap elements get returned in the correct order [x] Heap elements get returned in the correct order by using a custom comparator [x] The heap can be turned into an array [x] Heap elements can be replaced [x] A heap element can be returned while adding a new one [x] The heap can be checked if it contains certain elements [x] The heap can be checked if it contains certain custom elements [x] A heap item can be updated if it exists while maintaining the correct order [x] The first heap element can be returned without removing it [x] The n smallest elements can be returned from the heap [x] The n largest elements can be returned from the heap [x] The heap can be cleared of all elements [x] The heap can be checked if it has elements phpOMS\tests\Stdlib\Base\IbanTest: Iban type [x] A iban can be correctly parsed into its different components [x] A iban can be serialized and unserialized [x] A invalid iban country code throws a InvalidArgumentException [x] A invalid iban length throws a InvalidArgumentException [x] A invalid iban checksum throws a InvalidArgumentException phpOMS\tests\Stdlib\Base\LocationTest: Location type [x] The location has the expected default values after initialization [x] The postal can be set and returned [x] The type can be set and returned [x] The city can be set and returned [x] The country can be set and returned [x] The address can be set and returned [x] The state can be set and returned [x] The location can be turned into an array [x] The location can be json serialized [x] The location can unserialized Null Location (phpOMS\tests\Stdlib\Base\NullLocation) [x] Null location Phone Type (phpOMS\tests\Stdlib\Base\PhoneType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Stdlib\Base\SmartDateTimeTest: DateTime type with additional functionality [x] The smart datetime extends the datetime [x] The smart datetime can be formatted like the datetime [x] The smart datetime can be modified an creates a new smart datetime [x] The days of the month can be returned [x] The week day index of the first day of the month can be returned [x] A smart datetime can be created from a datetime [x] A smart datetime can be returned of the last day of the month [x] A smart datetime can be returned of the fist day of the month [x] A smart datetime can be returned of the last day of the week [x] A smart datetime can be returned of the fist day of the week [x] A smart datetime can be returned of the end of the day [x] A smart datetime can be returned of the start of the day [x] A date or year can be checked if it is a leap year [x] The day of the week index can be returned from a date [x] A invalid day of the week returns a negative week index [x] A calendar sheet is returned containing all days of the month and some days of the previous and next month phpOMS\tests\Stdlib\Graph\EdgeTest: Edge between nodes [x] The edge has the expected default values after initialization [x] An edge can be directed [x] An edge weight can be set and returned [x] Two edge weights can be compared hpOMS\tests\Stdlib\Graph\Graph: Graph [x] The graph has the expected default values after initialization [x] A graph can ge set as directed [x] A node can be add to a graph and returned [x] The existence of a node in a graph can be checked [x] A graph can be checked for bridges [x] Multiple bridges are correctly identified in a graph [x] A graph without bridges is correctly classified [x] Edges can be add and returned from a graph [x] An edge can be found by two edge ids [x] The existence of cycles in undirected graphs can be checked [x] The existence of cycles in directed graphs can be checked [x] The cost of a graph can be calculated [x] The Kruskal minimal spanning tree can be created [x] Find all reachable nodes d f s [x] Get all paths between nodes [x] Count all paths between nodes [x] Longest path between nodes [x] Shortest path between nodes [x] Shortest path floyd warshall [x] Longest paths dfs [x] Unconnected graph [x] Connected graph [x] Diameter [x] Girth [x] Circuit rank [x] Strongly connected [x] Invalid strongly connected [x] Bipartite [x] Triangles phpOMS\tests\Stdlib\Graph\NodeTest: Node in a graph [x] The node has the expected default values after initialization [x] The node data can be set and returned [x] Two equal nodes are equal [x] Two different nodes are not equal [x] An edge for a node can be defined [x] Edges can be removed from a node [x] An edge for a node can be defined by key [x] A node relationship can be defined [x] All neighbors of a node can be returned [x] Find edge from neighbor Key Type (phpOMS\tests\Stdlib\Map\KeyType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Stdlib\Map\MultiMapTest: Map which associates multiple keys with the same value [x] The map has the expected default values and functionality after initialization [x] Elements with multiple optional keys can be added [x] Elements with multiple optional keys can be returned if any of the keys matches [x] Elements can be forcefully overwritten [x] By default elements are not overwritten [x] If a element with partially matching keys is already in the map it will be only added for the new key [x] If all keys exist in the map no new element will be created [x] Values can be set/replaced by key [x] Values cannot be set/replaced if the key doesn't exist [x] A key cannot be remapped to a none-existing key [x] A key can be remapped to the value of an existing key [x] If no more keys are associated with a value after a remap the value is removed from the map [x] All keys of the map can be returned [x] All values of the map can be returned [x] Sibling keys can be found [x] If a key doesn't exist or has no siblings no siblings are returned [x] A key for a value can be removed [x] If the last key of a value is removed the value is also removed from the map [x] If a key doesn't exist it cannot be removed [x] Elements with multiple required keys can be added [x] Elements with multiple required keys can be returned if all match [x] Elements with multiple required keys cannot be returned if they don't match exactly [x] Elements with multiple required and ordered keys can be added [x] Elements with multiple required ordered keys can be if all match in the correct order [x] Elements with multiple required keys cannot be returned if they don't match exactly in the correct order [x] Elements with multiple required keys can be forcefully overwritten [x] Elements with multiple required ordered keys can be forcefully overwritten [x] An element cannot be added to for multiple required keys if the keys already exist in a different order [x] If a element with partially matching multiple keys is already in the map it will be only added for the new key [x] Adding differently ordered keys for multiple required keys will create a new entry in the map [x] If all keys for multiple required keys exist in the map no new element will be created [x] If all keys for multiple required ordered keys exist in the map no new element will be created [x] Values can be set/replaced by multiple required keys [x] Values cannot be set/replaced if the multiple required keys don't match or exist [x] Values can be set/replaced by multiple required ordered keys if the order is correct [x] Values cannot be set/replaced if the multiple required ordered keys don't match or exist in the correct order [x] Multiple keys cannot be remapped [x] All sibling key combinations can be found for multiple required keys [x] For multiple required ordered keys don't exist any siblings [x] A multiple required key combination for a value can be removed [x] If a multiple required key combination doesn't exist it cannot be removed [x] A multiple required ordered key combination for a value can be removed [x] If a multiple required ordered key combination doesn't exist it cannot be removed Order Type (phpOMS\tests\Stdlib\Map\OrderType) [x] Enum count [x] Unique [x] Enums Priority Mode (phpOMS\tests\Stdlib\Queue\PriorityMode) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Stdlib\Queue\PriorityQueueTest: Priority queue [x] The queue has the expected default values and functionality after initialization [x] Queue elements can be added with the default value of 1.0 and returned [x] Queue elements can be added with a priority [x] The priority queue returns the correct amount of elements it holds [x] A queue element can be removed [x] A none-existing queue element id cannot be removed [x] A removed or none-existing queue element returns a empty data [x] The priority of all queue elements can be uniformly increased [x] The priority or a queue element can be changed [x] The queue can be serialized and unserialized [x] A queue element can be popped from the que which also removes it from the queue [x] A FIFO queue returns the elements in FIFO order [x] A LIFO queue returns the elements in LIFO order [x] A highest queue returns the elements in highest priority order [x] A lowest queue returns the elements in lowest priority order [x] A invalid priority queue type throws a InvalidEnumValue phpOMS\tests\System\CharsetTypeTest: Character set type enum [x] The character set type enum has the correct amount of values [x] The character set type enum has only unique values [x] The character set type enum has the correct values Content Put Mode (phpOMS\tests\System\File\ContentPutMode) [x] Enum count [x] Unique [x] Enums Extension Type (phpOMS\tests\System\File\ExtensionType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\System\File\FileUtilsTest: File utilities [x] File extensions can be categorized [x] A relative path can be turned into an absolute path [x] Permissions can be turned into octal values [x] The encoding of a file can be changed [x] The file information can be resolved from a path phpOMS\tests\System\File\Ftp\DirectoryTest: Directory handler for a ftp server [ ] Connection [ ] Invalid connection [ ] A directory can be created [ ] A directory can be checked for existence [ ] An existing directory cannot be overwritten [ ] A directory can be forced to be created recursively [ ] By default a directory is not created recursively [ ] The name of a directory is just its name without its path [ ] The basename is the same as the name of the directory [ ] The dirname is the same as the name of the directory [ ] The parent of a directory can be returned [ ] The full absolute path of a directory can be returned [ ] The directories creation date can be returned [ ] The directories last change date can be returned [ ] A directory can be deleted [ ] A none-existing directory cannot be deleted [ ] The size of a directory can be returned [ ] The size of a none-existing directory is negative [ ] The recursive size of a directory is equals or greater than the size of the same directory none-recursive [ ] The permission of a directory can be returned [ ] The permission of a none-existing directory is negative [ ] A directory can be copied recursively [ ] Static copy overwrite [ ] Static invalid copy overwrite [ ] A directory can be moved/renamed to a different path [ ] Static invalid move overwrite [ ] Static move overwrite [ ] The amount of files in a directory can be returned recursively [ ] The amount of files in a directory can be returned none-recursively [ ] The amount of files of a none-existing directory is negative [ ] All files and sub-directories of a directory can be listed [ ] Static list files by extension [ ] Static owner [ ] Directory name sanitizing [ ] A none-existing directory returns a empty list of files and sub-directories [ ] Invalid list files by extension [ ] A invalid directory cannot be copied to a new destination [ ] A invalid directory cannot be moved to a new destination [ ] Reading the creation date of a none-existing directory throws a PathException [ ] Reading the last change date of a none-existing directory throws a PathException [ ] Reading the owner of a none-existing directory throws a PathException [ ] List [ ] Node output [ ] Node create [ ] Node delete [ ] Node copy [ ] Node move [ ] Node exists [ ] Parent output [ ] Node next [ ] Node current [ ] Node key [ ] Node array read [ ] Node array set [ ] Node array remove [ ] Node array exists [ ] Node created at [ ] Node changed at [ ] Node owner [ ] Node permission [ ] Dirname [ ] Name [ ] Baseame [ ] Dirpath [ ] Node valid [ ] Node invalid phpOMS\tests\System\File\Ftp\FileTest: File handler for a ftp server [ ] Connection [ ] Invalid connection [ ] A file without content can be created [ ] A file cannot be created if it already exists [ ] A file with content can be created [ ] A file cannot be replaced if it doesn't exists [ ] A file cannot be appended if it doesn't exists [ ] A file cannot be prepended if it doesn't exists [ ] A file can be checked for existence [ ] A file can be replaced with a new one [ ] The set alias works like the replace flag [ ] A file can be appended with additional content [ ] The append alias works like the append flag [ ] A file can be prepended with additional content [ ] The prepend alias works like the prepend flag [ ] The content of a file can be read [ ] The parent directory of a file can be returned [ ] The extension of a file can be returned [ ] The name of a file can be returned [ ] The basename of a file can be returned [ ] The file name of a file can be returned [ ] The file path of a file can be returned [ ] The count of a file is always 1 [ ] The directories creation date can be returned [ ] The directories last change date can be returned [ ] A file can be deleted [ ] A none-existing file cannot be deleted [ ] The size of a file can be returned [ ] The permission of a file can be returned [ ] The permission of a none-existing file is negative [ ] A file can be copied to a different location [ ] A file cannot be copied to a different location if the destination already exists [ ] A file can be forced to be copied to a different location even if the destination already exists [ ] A file can be moved to a different location [ ] A file cannot be moved to a different location if the destination already exists [ ] A file can be forced to be moved to a different location even if the destination already exists [ ] Static owner [ ] File name sanitizing [ ] The size of a none-existing file is negative [ ] A none-existing file cannot be copied [ ] A none-existing file cannot be moved [ ] Reading the content of a none-existing file returns an empty string [ ] Reading the created date of a none-existing file throws a PathException [ ] Reading the last change date of a none-existing file throws a PathException [ ] Reading the owner of a none-existing file throws a PathException [ ] Node input output [ ] Node replace [ ] Node append [ ] Node prepend [ ] Node extension [ ] Node created at [ ] Node changed at [ ] Node owner [ ] Node permission [ ] Dirname [ ] Name [ ] Baseame [ ] Dirpath [ ] Parent output [ ] Node create [ ] Node delete [ ] Node copy [ ] Node move [ ] Node exists [ ] Node parent [ ] Node directory phpOMS\tests\System\File\Ftp\FtpStorageTest: Directory & File handler for local file system [ ] A directory can be created [ ] A directory can be checked for existence [ ] An existing directory cannot be overwritten [ ] A directory can be forced to be created recursively [ ] The name of a directory is just its name without its path [ ] The basename is the same as the name of the directory [ ] The dirname is the same as the name of the directory [ ] The parent of a directory can be returned [ ] The full absolute path of a directory can be returned [ ] The directories creation date can be returned [ ] The directories last change date can be returned [ ] A directory can be deleted [ ] A none-existing directory cannot be deleted [ ] The size of a directory can be returned [ ] The size of a none-existing directory is negative [ ] The recursive size of a directory is equals or greater than the size of the same directory none-recursive [ ] The permission of a directory can be returned [ ] The permission of a none-existing directory is negative [ ] A directory can be copied recursively [ ] A directory can be moved/renamed to a different path [ ] The amount of files in a directory can be returned recursively [ ] The amount of files in a directory can be returned none-recursively [ ] The amount of files of a none-existing directory is negative [ ] All files and sub-directories of a directory can be listed [ ] A none-existing directory returns a empty list of files and sub-directories [ ] A invalid directory cannot be copied to a new destination [ ] A invalid directory cannot be moved to a new destination [ ] Reading the creation date of a none-existing directory throws a PathException [ ] Reading the last change date of a none-existing directory throws a PathException [ ] Reading the owner of a none-existing directory throws a PathException [ ] A file without content can be created [ ] A file cannot be created if it already exists [ ] A file with content can be created [ ] A file cannot be replaced if it doesn't exists [ ] A file cannot be appended if it doesn't exists [ ] A file cannot be prepended if it doesn't exists [ ] A file can be checked for existence [ ] A file can be replaced with a new one [ ] The set alias works like the replace flag [ ] A file can be appended with additional content [ ] The append alias works like the append flag [ ] A file can be prepended with additional content [ ] The prepend alias works like the prepend flag [ ] The content of a file can be read [ ] The parent directory of a file can be returned [ ] The extension of a file can be returned [ ] The name of a file can be returned [ ] The basename of a file can be returned [ ] The file name of a file can be returned [ ] The file path of a file can be returned [ ] The count of a file is always 1 [ ] The directories creation date can be returned [ ] The directories last change date can be returned [ ] A file can be deleted [ ] A none-existing file cannot be deleted [ ] The size of a file can be returned [ ] The permission of a file can be returned [ ] The permission of a none-existing file is negative [ ] A file can be copied to a different location [ ] A file cannot be copied to a different location if the destination already exists [ ] A file can be forced to be copied to a different location even if the destination already exists [ ] A file can be moved to a different location [ ] A file cannot be moved to a different location if the destination already exists [ ] A file can be forced to be moved to a different location even if the destination already exists [ ] Sanitize [ ] The size of a none-existing file is negative [ ] A none-existing file cannot be copied [ ] A none-existing file cannot be moved [ ] Reading the content of a none-existing file returns an empty result [ ] Reading the created date of a none-existing file throws a PathException [ ] Reading the last change date of a none-existing file throws a PathException [ ] Reading the owner of a none-existing file throws a PathException [ ] Writing data to a destination which looks like a directory throws a PathException [ ] Reading data from a directory throws a PathException [ ] Trying to run list on a file throws a PathException [ ] Setting data to a destination which looks like a directory throws a PathException [ ] Appending data to a destination which looks like a directory throws a PathException [ ] Prepending data to a destination which looks like a directory throws a PathException [ ] Reading the extension of a destination which looks like a directory throws a PathException phpOMS\tests\System\File\Local\DirectoryTest: Directory handler for local file system [x] A directory can be created [x] A directory can be checked for existence [x] An existing directory cannot be overwritten [x] A directory can be forced to be created recursively [x] By default a directory is not created recursively [x] The name of a directory is just its name without its path [x] The basename is the same as the name of the directory [x] The dirname is the same as the name of the directory [x] The parent of a directory can be returned [x] The full absolute path of a directory can be returned [x] The directories creation date can be returned [x] The directories last change date can be returned [x] A directory can be deleted [x] A none-existing directory cannot be deleted [x] The size of a directory can be returned [x] The size of a none-existing directory is negative [x] The recursive size of a directory is equals or greater than the size of the same directory none-recursive [x] The permission of a directory can be returned [x] The permission of a none-existing directory is negative [x] A directory can be copied recursively [x] A directory can be forced to be copied to a different location even if the destination already exists [x] By default a directory is not overwritten on copy [x] A directory can be moved/renamed to a different path [x] By default a directory is not overwritten on move [x] A directory can be forced to be moved/renamed to a different path even if the destination already exists [x] The amount of files in a directory can be returned recursively [x] The amount of files in a directory can be returned none-recursively [x] The amount of files of a none-existing directory is negative [x] All files and sub-directories of a directory can be listed [x] All files of a directory can be listed by file extension [ ] The owner of a directory can be returned [x] Invalid directory names and paths can be sanitized [x] A none-existing directory returns a empty list of files and sub-directories [x] A none-existing directory returns a empty list of files for the extension [x] A invalid directory cannot be copied to a new destination [x] A invalid directory cannot be moved to a new destination [x] Reading the creation date of a none-existing directory throws a PathException [x] Reading the last change date of a none-existing directory throws a PathException [x] Reading the owner of a none-existing directory throws a PathException [x] List [x] Node output [x] Node create [x] Node delete [x] Node copy [x] Node move [x] Node exists [x] Parent output [x] Node next [x] Node current [x] Node key [x] Node array read [x] Node array set [x] Node array remove [x] Node array exists [x] Node created at [x] Node changed at [ ] Node owner [x] Node permission [x] Dirname [x] Name [x] Baseame [x] Dirpath phpOMS\tests\System\File\Local\FileTest: File handler for local file system [x] A file without content can be created [x] A file cannot be created if it already exists [x] A file with content can be created [x] A file cannot be replaced if it doesn't exists [x] A file cannot be appended if it doesn't exists [x] A file cannot be prepended if it doesn't exists [x] A file can be checked for existence [x] A file can be replaced with a new one [x] The set alias works like the replace flag [x] A file can be appended with additional content [x] The append alias works like the append flag [x] A file can be prepended with additional content [x] The prepend alias works like the prepend flag [x] The content of a file can be read [x] The parent directory of a file can be returned [x] The extension of a file can be returned [x] The name of a file can be returned [x] The basename of a file can be returned [x] The file name of a file can be returned [x] The file path of a file can be returned [x] The count of a file is always 1 [x] The directories creation date can be returned [x] The directories last change date can be returned [x] A file can be deleted [x] A none-existing file cannot be deleted [x] The size of a file can be returned [x] The permission of a file can be returned [x] The permission of a none-existing file is negative [x] Path info [x] A file can be copied to a different location [x] A file cannot be copied to a different location if the destination already exists [x] A file can be forced to be copied to a different location even if the destination already exists [x] A file can be moved to a different location [x] A file cannot be moved to a different location if the destination already exists [x] A file can be forced to be moved to a different location even if the destination already exists [ ] Static owner [x] File name sanitizing [x] The size of a none-existing file is negative [x] A none-existing file cannot be copied [x] A none-existing file cannot be moved [x] Reading the content of a none-existing file throws a PathException [x] Reading the created date of a none-existing file throws a PathException [x] Reading the last change date of a none-existing file throws a PathException [x] Reading the owner of a none-existing file throws a PathException [x] Node input output [x] Node replace [x] Node append [x] Node prepend [x] Node extension [x] Node created at [x] Node changed at [ ] Node owner [x] Node permission [x] Dirname [x] Name [x] Baseame [x] Dirpath [x] Parent output [x] Node create [x] Node delete [x] Node copy [x] Node move [x] Node exists [x] Node parent [x] Node directory phpOMS\tests\System\File\Local\LocalStorageTest: Directory & File handler for local file system [x] A directory can be created [x] A directory can be checked for existence [x] An existing directory cannot be overwritten [x] A directory can be forced to be created recursively [x] The name of a directory is just its name without its path [x] The basename is the same as the name of the directory [x] The dirname is the same as the name of the directory [x] The parent of a directory can be returned [x] The full absolute path of a directory can be returned [x] The directories creation date can be returned [x] The directories last change date can be returned [x] A directory can be deleted [x] A none-existing directory cannot be deleted [x] The size of a directory can be returned [x] The size of a none-existing directory is negative [x] The recursive size of a directory is equals or greater than the size of the same directory none-recursive [x] The permission of a directory can be returned [x] The permission of a none-existing directory is negative [x] A directory can be copied recursively [x] A directory can be moved/renamed to a different path [x] The amount of files in a directory can be returned recursively [x] The amount of files in a directory can be returned none-recursively [x] The amount of files of a none-existing directory is negative [x] All files and sub-directories of a directory can be listed [x] A none-existing directory returns a empty list of files and sub-directories [x] A invalid directory cannot be copied to a new destination [x] A invalid directory cannot be moved to a new destination [x] Reading the creation date of a none-existing directory throws a PathException [x] Reading the last change date of a none-existing directory throws a PathException [x] Reading the owner of a none-existing directory throws a PathException [x] A file without content can be created [x] A file cannot be created if it already exists [x] A file with content can be created [x] A file cannot be replaced if it doesn't exists [x] A file cannot be appended if it doesn't exists [x] A file cannot be prepended if it doesn't exists [x] A file can be checked for existence [x] A file can be replaced with a new one [x] The set alias works like the replace flag [x] A file can be appended with additional content [x] The append alias works like the append flag [x] A file can be prepended with additional content [x] The prepend alias works like the prepend flag [x] The content of a file can be read [x] The parent directory of a file can be returned [x] The extension of a file can be returned [x] The name of a file can be returned [x] The basename of a file can be returned [x] The file name of a file can be returned [x] The file path of a file can be returned [x] The count of a file is always 1 [x] The directories creation date can be returned [x] The directories last change date can be returned [x] A file can be deleted [x] A none-existing file cannot be deleted [x] The size of a file can be returned [x] The permission of a file can be returned [x] The permission of a none-existing file is negative [x] A file can be copied to a different location [x] A file cannot be copied to a different location if the destination already exists [x] A file can be forced to be copied to a different location even if the destination already exists [x] A file can be moved to a different location [x] A file cannot be moved to a different location if the destination already exists [x] A file can be forced to be moved to a different location even if the destination already exists [x] Sanitize [x] The size of a none-existing file is negative [x] A none-existing file cannot be copied [x] A none-existing file cannot be moved [x] Reading the content of a none-existing file throws a PathException [x] Reading the created date of a none-existing file throws a PathException [x] Reading the last change date of a none-existing file throws a PathException [x] Reading the owner of a none-existing file throws a PathException [x] Writing data to a destination which looks like a directory throws a PathException [x] Reading data from a directory throws a PathException [x] Trying to run list on a file throws a PathException [x] Setting data to a destination which looks like a directory throws a PathException [x] Appending data to a destination which looks like a directory throws a PathException [x] Prepending data to a destination which looks like a directory throws a PathException [x] Reading the extension of a destination which looks like a directory throws a PathException Path Exception (phpOMS\tests\System\File\PathException) [x] Constructor Permission Exception (phpOMS\tests\System\File\PermissionException) [x] Constructor phpOMS\tests\System\File\StorageTest: Storage handler for the different storage handler types [x] By default the local storage handler is returned [x] The pre-defined storage handlers can be returned by their name [x] Storages can be registered and returned [x] Registered storage handlers cannot be overwritten [x] A invalid or none-existing storage throws a Exception phpOMS\tests\System\MimeTypeTest: MimeType [x] The mime type enum vales have the correct format [x] The mime type enum vales can be retreived by extension [x] A unknown extension returns application/octet-stream phpOMS\tests\System\OperatingSystemTest: Operating system [x] The current operating system can be returned phpOMS\tests\System\Search\StringSearchTest: Search utilities [x] Knut morris pratt search [x] Invalid knut morris pratt search [x] Boyer moore horspool simple search [x] Invalid boyer moore horspool simple search [x] Boyer moore horspool search [x] Invalid boyer moore horspool search phpOMS\tests\System\SystemTypeTest: System type [x] The system type enum has the correct amount of values [x] The system type enum has only unique values [x] The system type enum has the correct values phpOMS\tests\System\SystemUtilsTest: System information [x] Test if it is possible to get information about the available RAM and usage [x] Test if it is possible to get information about the CPU usage Unhandled Handler (phpOMS\tests\UnhandledHandler) [x] Error handling phpOMS\tests\Uri\ArgumentTest: Argument uri / uri [x] A uri can be validated [x] The argument uri has the expected default values after initialization [x] The path can be parsed correctly from a uri [x] The path can be set and returned [x] The path offset can be set and returned [x] The route can be parsed correctly from a uri [x] The query data can be parsed correctly from a uri [x] The fragment can be parsed correctly from a uri [x] The uri can be turned into a string [x] The root path can be set and returned phpOMS\tests\Uri\HttpUriTest: Http uri / url [x] A url can be validated [x] The http url has the expected default values after initialization [x] The url schema can be parsed correctly from a url and overwritten [x] The port can be parsed correctly from a url and overwritten [x] The host can be parsed correctly from a url [x] The username can be parsed correctly from a url [x] The password can be parsed correctly from a url [x] The base can be parsed correctly from a url [x] The url can be turned into a string [x] The authority can be parsed correctly from a url [x] The user info can be parsed correctly from a url [x] The root path can be set and returned [x] A path can be overwritten [x] The path elements can be parsed from a url and overwritten [x] The path offset can be set and returned [x] The subdomain can be parsed correctly from a url [x] The query data can be parsed correctly from a url [x] The fragment data can be parsed correctly from a url [x] The path data can be parsed correctly from a url [x] The route can be parsed correctly from a url [x] A invalid uri cannot get parsed phpOMS\tests\Uri\InvalidUriExceptionTest: Invalid uri exception [x] The invalid uri exception is an unexpected value exception phpOMS\tests\Uri\UriFactoryTest: Http uri / url factory [x] The http url factory has the expected default values after initialization [x] Data can be set to the factory and returned [x] Data can be forcefully overwritten [x] By default data is not overwritten in the factory [x] Data can be removed/cleared from the factory [x] None-existing data cannot be cleared from the factory [x] Data can be removed from the factory by category [x] All data can be removed from the factory with a wildcard [x] Data can be removed from the factory with regular expression matches [x] Data which doesn't match the regular expression is not removed [x] A url can be build with the defined factory data and/or build specific data [x] The uri factory can be set up with default values from a url and build with these default values [x] In case of duplicated query elements the last element is used [x] The uri variables can be unescaped [x] In case of missing ? for query the builder automatically fixes it [x] A normal url will not be changed Uri Scheme (phpOMS\tests\Uri\UriScheme) [x] Enums [x] Enum unique phpOMS\tests\Utils\ArrayUtilsTest: Array utilities [x] Array values can be set and returned with a path [x] A invalid array path returns null [x] Test recursively if a value is in an array [x] An array element can be removed by its path [x] Deleting an invalid array path returns the original array [x] The recursive sum of all values in an array can be calculated [x] A multi-dimensional array can be flatten to a one-dimensional array [x] The sum of an array can be calculated [x] An array can be checked if it contains multiple defined elements [x] An array can be checked if it contains any of the defined elements [x] An array can be turned into a csv string [x] An array can be checked if it has an element and returns its index [x] A none-existing argument in an array returns a negative value [x] The argument value in an array can be returned [x] A none-existing argument in an array returns null [x] All array values in an array can be potentiated by a numeric value [x] All array values in an array can be square rooted [x] All array values in an array can be turned into their absolute value [x] The difference of two arrays can be evaluated recursively Aztec (phpOMS\tests\Utils\Barcode\Aztec) [ ] Placeholder Bar Abstract (phpOMS\tests\Utils\Barcode\BarAbstract) [x] Set get [x] Invalid dimension width [x] Invalid dimension height [x] Invalid orientation C128a (phpOMS\tests\Utils\Barcode\C128a) [x] Image png [x] Image jpg [x] Orientation and margin [x] Valid string C128b (phpOMS\tests\Utils\Barcode\C128b) [x] Image png [x] Image jpg [x] Orientation and margin [x] Valid string C128c (phpOMS\tests\Utils\Barcode\C128c) [x] Image png [x] Image jpg [x] Orientation and margin C25 (phpOMS\tests\Utils\Barcode\C25) [x] Image png [x] Image jpg [x] Orientation and margin [x] Valid string [x] Invalid orientation C39 (phpOMS\tests\Utils\Barcode\C39) [x] Image png [x] Image jpg [x] Orientation and margin [x] Valid string Codebar (phpOMS\tests\Utils\Barcode\Codebar) [x] Image png [x] Image jpg [x] Orientation and margin [x] Valid string Datamatrix (phpOMS\tests\Utils\Barcode\Datamatrix) [x] Image png [x] Image jpg HIBCC (phpOMS\tests\Utils\Barcode\HIBCC) [ ] Placeholder Orientation Type (phpOMS\tests\Utils\Barcode\OrientationType) [x] Enum count [x] Unique [x] Enums QR (phpOMS\tests\Utils\Barcode\QR) [x] Image png [x] Image jpg phpOMS\tests\Utils\ColorUtilsTest: Color utilities [x] A integer can be converted to rgb [x] Rgb can be converted to a integer phpOMS\tests\Utils\Compression\LZWTest: LZW compression [x] A string can be LZW compressed and uncompressed Angle Type (phpOMS\tests\Utils\Converter\AngleType) [x] Enum count [x] Unique [x] Enums Area Type (phpOMS\tests\Utils\Converter\AreaType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Utils\Converter\CurrencyTest: Currency converter [x] A currency can be converted from euro to another currency [x] A currency can be converted to euro from another currency [x] A currency can be converted from one currency to another currency [x] A currency conversion from eur to a invalid currency throws a InvalidArgumentException [x] A currency conversion from a invalid currency to eur throws a InvalidArgumentException [x] A currency conversion from a invalid currency to a invalid currency throws a InvalidArgumentException Energy Power Type (phpOMS\tests\Utils\Converter\EnergyPowerType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Utils\Converter\FileSizeTypeTest: File size types [x] Enum count [x] Unique [x] Enums [x] File sizes can get automatically formatted according to their size phpOMS\tests\Utils\Converter\FileTest: File size converter [x] A byte number can be converted to a string representation [x] A kilobyte number can be converted to a string representation phpOMS\tests\Utils\Converter\IpTest: IP converter [x] An ip can be converted to a float Length Type (phpOMS\tests\Utils\Converter\LengthType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Utils\Converter\MeasurementTest: Measurement converter [x] Temperatures can be converted [x] Weights can be converted [x] Lengths can be converted [x] Areas can be converted [x] Volumes can be converted [x] Speeds can be converted [x] Times can be converted [x] Angles can be converted [x] Pressures can be converted [x] Energies can be converted [x] Filesizes can be converted [x] Invalid conversion from unknown temperature throws a InvalidArgumentException [x] Invalid conversion to unknown temperature throws a InvalidArgumentException [x] Invalid conversion from unknown weight throws a InvalidArgumentException [x] Invalid conversion to unknown weight throws a InvalidArgumentException [x] Invalid conversion from unknown length throws a InvalidArgumentException [x] Invalid conversion to unknown length throws a InvalidArgumentException [x] Invalid conversion from unknown area throws a InvalidArgumentException [x] Invalid conversion to unknown area throws a InvalidArgumentException [x] Invalid conversion from unknown volume throws a InvalidArgumentException [x] Invalid conversion to unknown volume throws a InvalidArgumentException [x] Invalid conversion from unknown speed throws a InvalidArgumentException [x] Invalid conversion to unknown speed throws a InvalidArgumentException [x] Invalid conversion from unknown time throws a InvalidArgumentException [x] Invalid conversion to unknown time throws a InvalidArgumentException [x] Invalid conversion from unknown angle throws a InvalidArgumentException [x] Invalid conversion to unknown angle throws a InvalidArgumentException [x] Invalid conversion from unknown pressure throws a InvalidArgumentException [x] Invalid conversion to unknown pressure throws a InvalidArgumentException [x] Invalid conversion from unknown energy throws a InvalidArgumentException [x] Invalid conversion to unknown energy throws a InvalidArgumentException [x] Invalid conversion from unknown filesize throws a InvalidArgumentException [x] Invalid conversion to unknown filesize throws a InvalidArgumentException phpOMS\tests\Utils\Converter\NumericTest: Numeric converter [x] Arabic numbers can be converted to roman numbers [x] Roman numbers can be converted to arabic numbers [x] Letters can be converted to numbers [x] Numbers can be converted to letters [x] Numbers can be converted between bases Pressure Type (phpOMS\tests\Utils\Converter\PressureType) [x] Enum count [x] Unique [x] Enums Speed Type (phpOMS\tests\Utils\Converter\SpeedType) [x] Enum count [x] Unique [x] Enums Temperature Type (phpOMS\tests\Utils\Converter\TemperatureType) [x] Enum count [x] Unique [x] Enums Time Type (phpOMS\tests\Utils\Converter\TimeType) [x] Enum count [x] Unique [x] Enums Volume Type (phpOMS\tests\Utils\Converter\VolumeType) [x] Enum count [x] Unique [x] Enums Weight Type (phpOMS\tests\Utils\Converter\WeightType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Utils\Encoding\CaesarTest: Caesar text encoding/decoding [x] Text can be encoded and decoded with the ceasar encoding phpOMS\tests\Utils\Encoding\GrayTest: Gray text encoding/decoding [x] Text can be encoded and decoded with the gray encoding phpOMS\tests\Utils\Encoding\Huffman\DictionaryTest: Dictionary for the huffman encoding [x] Only single characters can be returned from the dictionary. Multiple characters throw a InvalidArgumentException [x] A none-existing character throws a InvalidArgumentException [x] Only single characters can be set in the dictionary. Multiple characters throw a InvalidArgumentException [x] Dictionary elements cannot be overwritten and throw a InvalidArgumentException [x] Invalid dictionary values throw a InvalidArgumentException phpOMS\tests\Utils\Encoding\Huffman\HuffmanTest: Data can be encoded with huffman [x] Encoding and decoding empty data results in an empty output [x] Data can be huffman encoded and decoded phpOMS\tests\Utils\Encoding\XorEncodingTest: XOR text encoding/decoding [x] Text can be encoded and decoded with the xor encoding Excel (phpOMS\tests\Utils\Excel\Excel) [ ] Placeholder phpOMS\tests\Utils\Git\AuthorTest: Git author [x] The author has the expected default values after initialization [x] The author name and email can be set during initialization and returned [x] The commit count can be set and returned [x] The addition count can be set and returned [x] The removal count can be set and returned phpOMS\tests\Utils\Git\BranchTest: Git branch [x] The branch has the expected default values after initialization [x] The branch name can be set during initialization and returned phpOMS\tests\Utils\Git\CommitTest: Git commit [x] The commit has the expected default values after initialization [x] A file can be added and returned [x] A file can only be added one time [x] A file can be removed [x] A none-existing file cannot be removed [x] A change can be added and returned [x] Adding the same change throws a Exception [x] A commit message can be set and returned [x] The author can be set and returned [x] The branch can be set and returned [x] The tag can be set and returned [x] The date can be set and returned [x] The repository can be set and returned phpOMS\tests\Utils\Git\GitTest: Git utilities [x] The git path can be returned phpOMS\tests\Utils\Git\RepositoryTest: Git repository [x] The repository has the expected default values after initialization phpOMS\tests\Utils\Git\TagTest: Git tag [x] The tag has the expected default values after initialization [x] The tag name can be set during initialization and returned [x] The message can be set and returned phpOMS\tests\Utils\IO\Csv\CsvSettingsTest: Csv file settings [x] The delimiter in a csv file can be guessed [x] The delimiter in a csv string can be guessed IODatabase Mapper (phpOMS\tests\Utils\IO\IODatabaseMapper) [ ] Placeholder Invalid Json Exception (phpOMS\tests\Utils\IO\Json\InvalidJsonException) [x] Exception phpOMS\tests\Utils\IO\Spreadsheet\SpreadsheetDatabaseMapperTest: Spreadsheet database mapper [x] Data can be inserted into a database from an ods files [x] Data can be inserted into a database from a xls files [x] Data can be inserted into a database from a xlsx files [x] Data can be updated in a database from an ods files [x] Data can be updated in a database from a xls files [x] Data can be updated in a database from a xlsx files [x] Data can be inserted into an ods files from a database [x] Data can be inserted into a xls files from a database [x] Data can be inserted into a xlsx files from a database phpOMS\tests\Utils\IO\Zip\GzTest: Gz archive [x] Data can be gz packed and unpacked [x] A gz archive cannot be overwritten by default [x] A none-existing source cannot be unpacked [x] A destination cannot be overwritten phpOMS\tests\Utils\IO\Zip\TarGzTest: TarGz archive [x] Data can be tar gz packed and unpacked [x] A tar gz archive cannot be overwritten by default [x] A none-existing source cannot be unpacked [x] A destination cannot be overwritten phpOMS\tests\Utils\IO\Zip\TarTest: Tar archive [x] Data can be tar packed and unpacked [x] Invalid archive unpack [x] Extracting invalid tar files fail [x] A tar archive cannot be overwritten by default [x] A none-existing source cannot be unpacked [x] A destination cannot be overwritten phpOMS\tests\Utils\IO\Zip\ZipTest: Zip archive [x] Data can be zip packed and unpacked [x] The output of the zip archive needs to be properly defined [x] Extracting invalid zip files fail [x] A zip archive cannot be overwritten by default [x] Invalid archive unpack [x] A none-existing source cannot be unpacked [x] A destination cannot be overwritten phpOMS\tests\Utils\ImageUtilsTest: Image utilities [x] Lightness [x] Lightness from rgb [x] Resize [x] Difference [x] Base64 image data can be decoded to an image phpOMS\tests\Utils\MbStringUtilsTest: Multi-Byte string utilities [x] The entropy of a string can be calculated [x] A string can be checked for multi-byte characters [x] A multi-byte string can be checked if it starts with a defined string [x] A multi-byte string can be checked if it ends with a defined string [x] The first character of a multi-byte string can be turned into upper case [x] The first character of a multi-byte string can be turned into lower case [x] A multi-byte string can be trimmed [x] A multi-byte string can be right-trimmed [x] A multi-byte string can be left-trimmed [x] A multi-byte string can be checked if it contains at least one defined string element [x] The characters of a multi-byte string can be counted [x] The previous boundary of a utf-8 encoded quoted printable is identified correctly phpOMS\tests\Utils\NumericUtilsTest: Numeric utilities [x] Integers can be unsigned right shifted Pdf (phpOMS\tests\Utils\PDF\Pdf) [ ] Placeholder Markdown (phpOMS\tests\Utils\Parser\Markdown\Markdown) [x] Parsing [x] Safe mode phpOMS\tests\Utils\Parser\Php\ArrayParserTest: Array data serializer as code [x] An array can be encoded and decoded as php code [x] A value can be encoded and decoded into php code phpOMS\tests\Utils\PermutationTest: Permutation utilities [x] An array can be permuted [x] Two string can be checked if they are a permutation of each other [x] A string can be checked if it is a palindrome [x] An array can be permuted with a permutation key [x] A none-existing permutation key throws a OutOfBoundsException phpOMS\tests\Utils\RnG\ArrayRandomizeTest: Array randomizer [x] An array can be randomized using the yates algorithm [x] An array can be randomized using the knuth algorithm phpOMS\tests\Utils\RnG\DateTimeTest: Date time randomizer [x] A random date time can be generated Distribution Type (phpOMS\tests\Utils\RnG\DistributionType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Utils\RnG\FileTest: File extension randomizer [x] A random file extension can be generated phpOMS\tests\Utils\RnG\LinearCongruentialGeneratorTest: Random number generator [x] The bsd random number generator starts with the correct sequence [x] The same bsd seed generates the same random number [x] Different bsd seeds generate different random numbers [x] The msvcrt random number generator starts with the correct sequence [x] The same msvcrt seed generates the same random number [x] Different msvcrt seeds generate different random numbers phpOMS\tests\Utils\RnG\NameTest: Random name generator [x] Random female and male names can be generated phpOMS\tests\Utils\RnG\PhoneTest: Random phone number generator [x] Random phone numbers can be generated phpOMS\tests\Utils\RnG\StringUtilsTest: Random string generator [x] Random strings can be generated phpOMS\tests\Utils\RnG\TextTest: Random text generator [x] Random text can be generated phpOMS\tests\Utils\StringCompareTest: String comparison / dictionary [x] A string can be matched with a dictionary entry [x] A string doesn't match a dictionary entry if it is very different [x] A new dictionary entry can be created and returned [x] Two texts can be compared on a per word basis for similarity [x] Jaro [x] Jaro empty phpOMS\tests\Utils\StringUtilsTest: String utilities [x] The entropy of a string can be calculated [x] A string can be checked if it starts with a defined string [x] A string can be checked if it ends with a defined string [x] A string can be checked if it contains at least one defined string element [x] The amount of a defined characters in the beginning of a string can be counted [x] A string creates a integer hash [x] The same string creates the same hash [x] Different strings create different hashes [x] Various data types can be stringified [x] Stringify/rendering a unknown data type returns null [x] The difference between two strings can be evaluated [x] A string can be validated for shell safety phpOMS\tests\Utils\TaskSchedule\CronJobTest: Cron job [x] The cron job has the expected default values after initialization [x] A cron job can be created from an array and rendered phpOMS\tests\Utils\TaskSchedule\CronTest: Cron handler [x] The cron handler has the expected default values after initialization [x] The cron binary location path can be guessed [x] A cron job can be created and returned [x] A none-existing cron name cannot be returned [x] A cron job can be updated [x] A cron job can be deleted phpOMS\tests\Utils\TaskSchedule\IntervalTest: Cron interval [x] The interval has the expected default values after initialization [x] The start date can be set during initialization and returned [x] The start date can set and returned [x] The end date can set and returned [x] The maximum execution duration can set and returned [x] An execution minute can be added and returned [x] An execution minute can be overwritten [x] An execution hour can be added and returned [x] An execution hour can be overwritten [x] An execution year can be added and returned [x] An execution year can be overwritten [x] An execution day of month can be added and returned [x] An execution day of month can be overwritten [x] An execution day of week can be added and returned [x] An execution day of week can be overwritten [x] A interval can be serialized [x] A serialized interval can be unserialized phpOMS\tests\Utils\TaskSchedule\ScheduleTest: Schedule/task [x] The task has the expected default values after initialization [x] A task can be created from an array and rendered phpOMS\tests\Utils\TaskSchedule\SchedulerAbstractTest: Scheduler abstraction [x] The scheduler has the expected default values after initialization [x] The scheduler binary location path can be guessed phpOMS\tests\Utils\TaskSchedule\SchedulerFactoryTest: Scheduler factory for creating cron/task handlers [x] The correct scheduler is crated depending on the operating system phpOMS\tests\Utils\TaskSchedule\TaskAbstractTest: Job/task abstraction [x] The task abstraction has the expected default values after initialization [x] The command can be set and returned [x] The interval can be set and returned [x] The status can be set and returned [x] The comment can be set and returned [x] The last runtime can be set and returned [x] The next runtime can be set and returned phpOMS\tests\Utils\TaskSchedule\TaskFactoryTest: Task factory for creating cron jobs/tasks [x] The correct task is crated depending on the operating system phpOMS\tests\Utils\TaskSchedule\TaskSchedulerTest: Task schedule handler [ ] The task handler has the expected default values after initialization [ ] The task binary location path can be guessed [ ] A task can be created and returned [ ] A none-existing task name cannot be returned [ ] A task can be updated [ ] A task can be deleted phpOMS\tests\Utils\TestUtilsTest: Test utilities [x] A member value can be returned [x] Invalid member variable returns null [x] A member value can be set and returned [x] A none-existing member variable cannot be set phpOMS\tests\Validation\Base\DateTimeTest: Datetime validator [x] A date time string can be validated phpOMS\tests\Validation\Base\JsonTest: Json validator [x] A json string can be validated [x] A json string can be validated against a template definition [x] A json string can be validated against a template definition with additional data [x] A json string cannot be validated against a template definition with additional data if an exact match is enforced [x] A json string cannot be validated against a template definition with missing data if an exact match is enforced [x] A json string cannot be validated against a template definition if it doesn't match the template phpOMS\tests\Validation\Finance\BICTest: BIC validator [x] A BIC can be validated phpOMS\tests\Validation\Finance\CreditCardTest: Credit card validator [x] A credit card can be validated [x] A invalid type cannot be validated Iban Enum (phpOMS\tests\Validation\Finance\IbanEnum) [x] Enums Iban Error Type (phpOMS\tests\Validation\Finance\IbanErrorType) [x] Enum count [x] Unique [x] Enums phpOMS\tests\Validation\Finance\IbanTest: Iban validator [x] A iban can be validated [x] Numeric [x] Zero [x] Invalid name [x] Invalid length [x] Invalid checksum phpOMS\tests\Validation\Network\EmailTest: Email validator [x] A email can be validated phpOMS\tests\Validation\Network\HostnameTest: Hostname validator [x] A hostname can be validated [x] A IP can be validated as hostname phpOMS\tests\Validation\Network\IpTest: IP validator [x] A ip can be validated [x] A ip4 can be validated [x] A ip6 can be validated phpOMS\tests\Validation\ValidatorTest: General validator [x] A string can be checked if it contains a substring [x] A string can be checked if it has a certain length [x] A value can be checked if it is in range [x] A value can be checked to be of a defined type [x] The error message and error code have the expected default values [x] Custom validators can be specified in order to validate a value [x] Invalid validator call [x] A value can be checked to match a regular expression [x] Error message [x] Error code [x] Reset error phpOMS\tests\Version\VersionTest: Version handler [x] Versions can be compared with each other phpOMS\tests\Views\PaginationViewTest: View for pagination [x] The pagination view has the expected default values after initialization [x] The max pages can be set and returned [x] The pages can be set and returned [x] The page can be set and returned [x] The results can be set and returned phpOMS\tests\Views\ViewTest: View for response rendering [x] The view has the expected default values after initialization [x] The view data can be checked for existence [x] The view can output text from the localization manager [x] The view can output html escaped text from the localization manager [x] The numeric value can be printed based on the localization [x] The percentage value can be printed based on the localization [x] The currency value can be printed based on the localization [x] The datetime value can be printed based on the localization [x] View data can be set and returned [x] View data can be added and returned [x] View data can be removed [x] None-existing view data cannot be removed [x] The request can be returned [x] The response can be returned [x] Text can be html escaped [x] Views can be added and returned from a view [x] None-existing views cannot be returned [x] Views can be removed [x] None-existing views cannot be removed [x] A view can be forcefully overwritten [x] By default a view is not overwritten [x] A view template can be rendered [x] A view template can be build [x] A view template can be serialized [x] A view can be turned into an array containing the rendered templates [x] Rendering a invalid template throws a PathException [x] Building a invalid template throws a PathException [x] Serializing a invalid template throws a PathException [x] Getting the text without defining a module throws a InvalidModuleException exception [x] Getting the text with an invalid template path throws a InvalidModuleException exception [x] Getting the text without defining a template throws a InvalidThemeException exception