diff --git a/Config/reportLang.php b/Config/reportLang.php index 02c8017..68c7eeb 100644 --- a/Config/reportLang.php +++ b/Config/reportLang.php @@ -57,403 +57,731 @@ return [ ':disclaimer_desc_1' => 'This test report doesn\'t provide any legal warrenty over completeness and correctness in case of damages of any kind.', // report elements come below / the order is important and is the same as in the generated report. - 'phpOMS\tests\Account\AccountManagerTest' => ['description' => 'Account/user manager to handle/access loaded accounts'], - 'phpOMS\tests\Account\AccountManagerTest:testAttributes' => ['description' => 'The manager has the expected member variables'], - 'phpOMS\tests\Account\AccountManagerTest:testDefault' => ['description' => 'The manager has the expected default values after initialization'], - 'phpOMS\tests\Account\AccountManagerTest:testAddAccount' => ['description' => 'An account can be added to the manager'], - 'phpOMS\tests\Account\AccountManagerTest:testRetrieveAccount' => ['description' => 'An account can be retrieved from the manager'], - 'phpOMS\tests\Account\AccountManagerTest:testNoAccountDuplication' => ['description' => 'An account can only be added once to the account manager (no duplication)'], - 'phpOMS\tests\Account\AccountManagerTest:testRemoveAccount' => ['description' => 'An account can be removed from the account manager'], - 'phpOMS\tests\Account\AccountManagerTest:testRemoveOnlyValidAccount' => ['description' => 'Only a valid account can be removed from the manager'], + 'phpOMS\tests\Account\AccountManagerTest' => ['description' => 'Account/user manager to handle/access loaded accounts', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testAttributes' => ['description' => 'The manager has the expected member variables', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testDefault' => ['description' => 'The manager has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testAddAccount' => ['description' => 'An account can be added to the manager', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testRetrieveAccount' => ['description' => 'An account can be retrieved from the manager', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testNoAccountDuplication' => ['description' => 'An account can only be added once to the account manager (no duplication)', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testRemoveAccount' => ['description' => 'An account can be removed from the account manager', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountManagerTest:testRemoveOnlyValidAccount' => ['description' => 'Only a valid account can be removed from the manager', 'type' => 'framework'], - 'phpOMS\tests\Account\AccountTest' => ['description' => 'Base account/user representation'], - 'phpOMS\tests\Account\AccountTest:testAttributes' => ['description' => 'The account has the expected member variables'], - 'phpOMS\tests\Account\AccountTest:testDefault' => ['description' => 'The account has the expected default values after initialization'], - 'phpOMS\tests\Account\AccountTest:testSetAndGetAccountNames' => ['description' => 'The account names can be set and retrieved correctly'], - 'phpOMS\tests\Account\AccountTest:testAddAndGetGroup' => ['description' => 'Groups can be added to an account'], - 'phpOMS\tests\Account\AccountTest:testSetAndGetAccountEmail' => ['description' => 'An account can have a valid email address'], - 'phpOMS\tests\Account\AccountTest:testChangeStatus' => ['description' => 'The default status of the account can be changed to a different valid status'], - 'phpOMS\tests\Account\AccountTest:testChangeType' => ['description' => 'The default type of the account can be changed to a different valid type'], - 'phpOMS\tests\Account\AccountTest:testPermissionHandling' => ['description' => 'Account permissions can be added and checked for existence'], - 'phpOMS\tests\Account\AccountTest:testLocalization' => ['description' => 'An account can have it\'s own localization'], - 'phpOMS\tests\Account\AccountTest:testLastChange' => ['description' => 'An account \'last activity\' timestamp can be updated and retrieved'], - 'phpOMS\tests\Account\AccountTest:testEmailException' => ['description' => 'An account can only have a valid email'], - 'phpOMS\tests\Account\AccountTest:testStatusException' => ['description' => 'An account can only have valid account status'], - 'phpOMS\tests\Account\AccountTest:testTypeException' => ['description' => 'An account can only have valid account types'], + 'phpOMS\tests\Account\AccountTest' => ['description' => 'Base account/user representation', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testAttributes' => ['description' => 'The account has the expected member variables', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testDefault' => ['description' => 'The account has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testSetAndGetAccountNames' => ['description' => 'The account names can be set and retrieved correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testAddAndGetGroup' => ['description' => 'Groups can be added to an account', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testSetAndGetAccountEmail' => ['description' => 'An account can have a valid email address', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testChangeStatus' => ['description' => 'The default status of the account can be changed to a different valid status', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testChangeType' => ['description' => 'The default type of the account can be changed to a different valid type', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testPermissionHandling' => ['description' => 'Account permissions can be added and checked for existence', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testLocalization' => ['description' => 'An account can have it\'s own localization', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testLastChange' => ['description' => 'An account \'last activity\' timestamp can be updated and retrieved', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testEmailException' => ['description' => 'An account can only have a valid email', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testStatusException' => ['description' => 'An account can only have valid account status', 'type' => 'framework'], + 'phpOMS\tests\Account\AccountTest:testTypeException' => ['description' => 'An account can only have valid account types', 'type' => 'framework'], - 'phpOMS\tests\Account\GroupTest' => ['description' => 'Base group representation'], - 'phpOMS\tests\Account\GroupTest:testAttributes' => ['description' => 'The group has the expected member variables'], - 'phpOMS\tests\Account\GroupTest:testDefault' => ['description' => 'The group has the expected default values after initialization'], - 'phpOMS\tests\Account\GroupTest:testSetAndGetGroupNameDescription' => ['description' => 'The group name and description can be set and retrieved correctly'], - 'phpOMS\tests\Account\GroupTest:testPermissionHandling' => ['description' => 'Group permissions can be added and checked for existence'], - 'phpOMS\tests\Account\GroupTest:testChangeStatus' => ['description' => 'The default status of the group can be changed to a different valid status'], - 'phpOMS\tests\Account\GroupTest:testStatusException' => ['description' => 'A group can only have valid group status'], + 'phpOMS\tests\Account\GroupTest' => ['description' => 'Base group representation', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testAttributes' => ['description' => 'The group has the expected member variables', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testDefault' => ['description' => 'The group has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testSetAndGetGroupNameDescription' => ['description' => 'The group name and description can be set and retrieved correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testPermissionHandling' => ['description' => 'Group permissions can be added and checked for existence', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testChangeStatus' => ['description' => 'The default status of the group can be changed to a different valid status', 'type' => 'framework'], + 'phpOMS\tests\Account\GroupTest:testStatusException' => ['description' => 'A group can only have valid group status', 'type' => 'framework'], - 'phpOMS\tests\Account\PermissionAbstract' => ['description' => 'Base permission representation'], - 'phpOMS\tests\Account\PermissionAbstract:testAbstractDefault' => ['description' => 'The permission has the expected default values after initialization'], - 'phpOMS\tests\Account\PermissionAbstract:testUnitInputOutput' => ['description' => 'The unit can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testAppInputOutput' => ['description' => 'The app can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testModuleInputOutput' => ['description' => 'The module can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testFromInputOutput' => ['description' => 'The from can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testTypeInputOutput' => ['description' => 'The type can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testElementInputOutput' => ['description' => 'The element can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testComponentInputOutput' => ['description' => 'The component can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testPermissionInputOutput' => ['description' => 'The permission can be set and returned correctly'], - 'phpOMS\tests\Account\PermissionAbstract:testValidPermission' => ['description' => 'Correct permissions are validated'], - 'phpOMS\tests\Account\PermissionAbstract:testInvalidPermission' => ['description' => 'Invalid permissions are not validted'], - 'phpOMS\tests\Account\PermissionAbstract:testValidPermissionFlag' => ['description' => 'Correct permission flags are validated'], - 'phpOMS\tests\Account\PermissionAbstract:testInvalidPermissionFlag' => ['description' => 'Invalid permission flags are not validated'], + 'phpOMS\tests\Account\PermissionAbstract' => ['description' => 'Base permission representation', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testAbstractDefault' => ['description' => 'The permission has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testUnitInputOutput' => ['description' => 'The unit can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testAppInputOutput' => ['description' => 'The app can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testModuleInputOutput' => ['description' => 'The module can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testFromInputOutput' => ['description' => 'The from can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testTypeInputOutput' => ['description' => 'The type can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testElementInputOutput' => ['description' => 'The element can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testComponentInputOutput' => ['description' => 'The component can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testPermissionInputOutput' => ['description' => 'The permission can be set and returned correctly', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testValidPermission' => ['description' => 'Correct permissions are validated', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testInvalidPermission' => ['description' => 'Invalid permissions are not validted', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testValidPermissionFlag' => ['description' => 'Correct permission flags are validated', 'type' => 'framework'], + 'phpOMS\tests\Account\PermissionAbstract:testInvalidPermissionFlag' => ['description' => 'Invalid permission flags are not validated', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Clustering\KmeansTest' => ['description' => 'Clustering points/elements with the K-means algorithm'], - 'phpOMS\tests\Algorithm\Clustering\KmeansTest:testKmeans' => ['description' => 'The clustering of points and dynamic check of new points works as expected'], + 'phpOMS\tests\Algorithm\Clustering\KmeansTest' => ['description' => 'Clustering points/elements with the K-means algorithm', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Clustering\KmeansTest:testKmeans' => ['description' => 'The clustering of points and dynamic check of new points works as expected', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Clustering\PointTest' => ['description' => 'Default point in a cluster'], - 'phpOMS\tests\Algorithm\Clustering\PointTest:testCoordinateInputOutput' => ['description' => 'Coordinates of a point can be set and returned'], - 'phpOMS\tests\Algorithm\Clustering\PointTest:testGroupInputOutput' => ['description' => 'The group/cluster of a point can be set and returned'], - 'phpOMS\tests\Algorithm\Clustering\PointTest:testNameInputOutput' => ['description' => 'The name of a point can be set and returned'], + 'phpOMS\tests\Algorithm\Clustering\PointTest' => ['description' => 'Default point in a cluster', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Clustering\PointTest:testCoordinateInputOutput' => ['description' => 'Coordinates of a point can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Clustering\PointTest:testGroupInputOutput' => ['description' => 'The group/cluster of a point can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Clustering\PointTest:testNameInputOutput' => ['description' => 'The name of a point can be set and returned', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\CoinMatching\MinimumCoinProblemTest' => ['description' => 'Match a value by using the minimum quantity of available sub values (Minimum Coin Problem)'], - 'phpOMS\tests\Algorithm\CoinMatching\MinimumCoinProblemTest:testMinimumCoins' => ['description' => 'A value is matched with the minimum quantity of avialable coins.'], + 'phpOMS\tests\Algorithm\CoinMatching\MinimumCoinProblemTest' => ['description' => 'Match a value by using the minimum quantity of available sub values (Minimum Coin Problem)', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\CoinMatching\MinimumCoinProblemTest:testMinimumCoins' => ['description' => 'A value is matched with the minimum quantity of avialable coins.', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest' => ['description' => 'Job scheduling based on values/profit'], - 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest:testNoOverlappingScheduling' => ['description' => 'The optimal job combination is selected to maximize the value/profit without overlapping jobs'], - 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest:testSmallList' => ['description' => 'A job list with only one job simply returns one job'], + 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest' => ['description' => 'Job scheduling based on values/profit', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest:testNoOverlappingScheduling' => ['description' => 'The optimal job combination is selected to maximize the value/profit without overlapping jobs', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\JobScheduling\WeightedTest:testSmallList' => ['description' => 'A job list with only one job simply returns one job', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\JobScheduling\JobTest' => ['description' => 'Default job for the job scheduling'], - 'phpOMS\tests\Algorithm\JobScheduling\JobTest:testDefault' => ['description' => 'The job has the expected values after initialization'], + 'phpOMS\tests\Algorithm\JobScheduling\JobTest' => ['description' => 'Default job for the job scheduling', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\JobScheduling\JobTest:testDefault' => ['description' => 'The job has the expected values after initialization', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Knapsack\BoundedTest' => ['description' => 'A Knapsack implementation for discrete quantities, values and costs and bounded item quantities'], - 'phpOMS\tests\Algorithm\Knapsack\BoundedTest:testBackpacking' => ['description' => '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\BoundedTest' => ['description' => 'A Knapsack implementation for discrete quantities, values and costs and bounded item quantities', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\BoundedTest:testBackpacking' => ['description' => 'The optimal item selection in a backpack is calculated in order to optimize the value/profit while considering the available capacity/cost limit', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Knapsack\ContinuousTest' => ['description' => 'A Knapsack implementation for continuous quantities, values and costs'], - 'phpOMS\tests\Algorithm\Knapsack\ContinuousTest:testBackpacking' => ['description' => '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]'], - 'phpOMS\tests\Algorithm\Knapsack\ContinuousTest:testBackpackingAlternative' => ['description' => '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\ContinuousTest' => ['description' => 'A Knapsack implementation for continuous quantities, values and costs', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\ContinuousTest:testBackpacking' => ['description' => '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]', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\ContinuousTest:testBackpackingAlternative' => ['description' => '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]', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Knapsack\BackpackTest' => ['description' => 'The default backpack or basket which holds all items for the Knapsack algorithm'], - 'phpOMS\tests\Algorithm\Knapsack\BackpackTest:testDefault' => ['description' => 'The backpack has the expected values after initialization'], - 'phpOMS\tests\Algorithm\Knapsack\BackpackTest:testAddItems' => ['description' => 'Items can be added to the backpack and automatically change the value and cost the backpack contains'], + 'phpOMS\tests\Algorithm\Knapsack\BackpackTest' => ['description' => 'The default backpack or basket which holds all items for the Knapsack algorithm', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\BackpackTest:testDefault' => ['description' => 'The backpack has the expected values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\BackpackTest:testAddItems' => ['description' => 'Items can be added to the backpack and automatically change the value and cost the backpack contains', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Knapsack\ItemTest' => ['description' => 'The default item to be added to the backpack or basket'], - 'phpOMS\tests\Algorithm\Knapsack\ItemTest:testDefault' => ['description' => 'The item has the expected values after initialization'], + 'phpOMS\tests\Algorithm\Knapsack\ItemTest' => ['description' => 'The default item to be added to the backpack or basket', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Knapsack\ItemTest:testDefault' => ['description' => 'The item has the expected values after initialization', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\AStarTest' => ['description' => 'AStar path finding'], - 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonal' => ['description' => 'The correct path is found for diagonal movement'], - 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingStraight' => ['description' => 'The correct path is found for straight movement'], - 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonalOneObstacle' => ['description' => 'The correct path is found for diagonal movement [one obstacle]'], - 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonalNoObstacle' => ['description' => 'The correct path is found for diagonal movement [no obstacle]'], + 'phpOMS\tests\Algorithm\PathFinding\AStarTest' => ['description' => 'AStar path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonal' => ['description' => 'The correct path is found for diagonal movement', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingStraight' => ['description' => 'The correct path is found for straight movement', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonalOneObstacle' => ['description' => 'The correct path is found for diagonal movement [one obstacle]', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarTest:testPathFindingDiagonalNoObstacle' => ['description' => 'The correct path is found for diagonal movement [no obstacle]', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest' => ['description' => 'JumpPoint path finding'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonal' => ['description' => 'The correct path is found for diagonal movement'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingStraight' => ['description' => 'The correct path is found for straight movement'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonalOneObstacle' => ['description' => 'The correct path is found for diagonal movement [one obstacle]'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonalNoObstacle' => ['description' => 'The correct path is found for diagonal movement [no obstacle]'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest' => ['description' => 'JumpPoint path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonal' => ['description' => 'The correct path is found for diagonal movement', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingStraight' => ['description' => 'The correct path is found for straight movement', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonalOneObstacle' => ['description' => 'The correct path is found for diagonal movement [one obstacle]', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointSearchTest:testPathFindingDiagonalNoObstacle' => ['description' => 'The correct path is found for diagonal movement [no obstacle]', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest' => ['description' => 'Grid for path finding'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDefault' => ['description' => 'By default a grid is empty'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testGridFromArray' => ['description' => 'A grid can be created from an array'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testNodeInputOutput' => ['description' => 'A node can be set and returned from the grid'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testOutOfBoundsNode' => ['description' => 'Out of bounds nodes cannot be returned'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightHorizontalNeighbors' => ['description' => 'All hoirzontal neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightVerticalNeighbors' => ['description' => 'All vertical neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightNoneNeighbors' => ['description' => 'No straight neighbors are found if no straight neighbors exist'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightAllNeighbors' => ['description' => 'All straight neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalLRNeighbors' => ['description' => 'All neighbors except blocked diagonal neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalURNeighbors' => ['description' => 'All neighbors except blocked diagonal neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoneNeighbors' => ['description' => 'No diagonal neighbors are found if no neighbors exist'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOnlyNeighbors' => ['description' => 'All diagonal neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalAllNeighbors' => ['description' => 'All neighbors can be found correctly'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleNoBlockNeighbors' => ['description' => 'All neighbors can be found correctly even if one obstacle exists'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleBlockNeighbors' => ['description' => 'No diagonal neighbors are found if they are blocked on two sides'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleAllNeighbors' => ['description' => 'All neighbors can be found correctly if no obstacles exists'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoObstacleBlockNeighbors' => ['description' => 'No diagonal neighbors are found if one obstacle exists'], - 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoObstacleAllNeighbors' => ['description' => 'All neighbors can be found correctly if no obstacles exist'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest' => ['description' => 'Grid for path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDefault' => ['description' => 'By default a grid is empty', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testGridFromArray' => ['description' => 'A grid can be created from an array', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testNodeInputOutput' => ['description' => 'A node can be set and returned from the grid', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testOutOfBoundsNode' => ['description' => 'Out of bounds nodes cannot be returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightHorizontalNeighbors' => ['description' => 'All hoirzontal neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightVerticalNeighbors' => ['description' => 'All vertical neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightNoneNeighbors' => ['description' => 'No straight neighbors are found if no straight neighbors exist', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testStraightAllNeighbors' => ['description' => 'All straight neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalLRNeighbors' => ['description' => 'All neighbors except blocked diagonal neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalURNeighbors' => ['description' => 'All neighbors except blocked diagonal neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoneNeighbors' => ['description' => 'No diagonal neighbors are found if no neighbors exist', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOnlyNeighbors' => ['description' => 'All diagonal neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalAllNeighbors' => ['description' => 'All neighbors can be found correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleNoBlockNeighbors' => ['description' => 'All neighbors can be found correctly even if one obstacle exists', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleBlockNeighbors' => ['description' => 'No diagonal neighbors are found if they are blocked on two sides', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalOneObstacleAllNeighbors' => ['description' => 'All neighbors can be found correctly if no obstacles exists', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoObstacleBlockNeighbors' => ['description' => 'No diagonal neighbors are found if one obstacle exists', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\GridTest:testDiagonalNoObstacleAllNeighbors' => ['description' => 'All neighbors can be found correctly if no obstacles exist', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\NodeTest' => ['description' => 'Node on grid for path finding'], - 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testDefault' => ['description' => 'The node has the expected values after initialization'], - 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testNodesWithEqualCoordinatesAreEqual' => ['description' => 'Nodes with equal coordinates are equal'], - 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testNodesWithDifferentCoordinatesAreNotEqual' => ['description' => 'Nodes with different coordinates are not equal'], - 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testParentInputOutput' => ['description' => 'A parent node can be set and returned'], + 'phpOMS\tests\Algorithm\PathFinding\NodeTest' => ['description' => 'Node on grid for path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testDefault' => ['description' => 'The node has the expected values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testNodesWithEqualCoordinatesAreEqual' => ['description' => 'Nodes with equal coordinates are equal', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testNodesWithDifferentCoordinatesAreNotEqual' => ['description' => 'Nodes with different coordinates are not equal', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\NodeTest:testParentInputOutput' => ['description' => 'A parent node can be set and returned', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest' => ['description' => 'JumpPointNode on grid for path finding'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testDefault' => ['description' => 'The node has the expected values after initialization'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testClosedInputOutput' => ['description' => 'The node can be set closed and checked'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testOpenedInputOutput' => ['description' => 'The node can be set opened and checked'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testTestedInputOutput' => ['description' => 'The node can be set tested and checked'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testGInputOutput' => ['description' => 'The g value cen be set and returned'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testHInputOutput' => ['description' => 'The h value cen be set and returned'], - 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testFInputOutput' => ['description' => 'The f value cen be set and returned'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest' => ['description' => 'JumpPointNode on grid for path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testDefault' => ['description' => 'The node has the expected values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testClosedInputOutput' => ['description' => 'The node can be set closed and checked', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testOpenedInputOutput' => ['description' => 'The node can be set opened and checked', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testTestedInputOutput' => ['description' => 'The node can be set tested and checked', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testGInputOutput' => ['description' => 'The g value cen be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testHInputOutput' => ['description' => 'The h value cen be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\JumpPointNodeTest:testFInputOutput' => ['description' => 'The f value cen be set and returned', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest' => ['description' => 'JumpPointNode on grid for path finding'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testDefault' => ['description' => 'The node has the expected values after initialization'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testClosedInputOutput' => ['description' => 'The node can be set closed and checked'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testOpenedInputOutput' => ['description' => 'The node can be set opened and checked'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testTestedInputOutput' => ['description' => 'The node can be set tested and checked'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testGInputOutput' => ['description' => 'The g value cen be set and returned'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testHInputOutput' => ['description' => 'The h value cen be set and returned'], - 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testFInputOutput' => ['description' => 'The f value cen be set and returned'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest' => ['description' => 'JumpPointNode on grid for path finding', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testDefault' => ['description' => 'The node has the expected values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testClosedInputOutput' => ['description' => 'The node can be set closed and checked', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testOpenedInputOutput' => ['description' => 'The node can be set opened and checked', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testGInputOutput' => ['description' => 'The g value cen be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testHInputOutput' => ['description' => 'The h value cen be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\AStarNodeTest:testFInputOutput' => ['description' => 'The f value cen be set and returned', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\PathFinding\PathTest' => ['description' => 'Path on grid'], - 'phpOMS\tests\Algorithm\PathFinding\PathTest:testDefault' => ['description' => 'The path has the expected values after initialization'], - 'phpOMS\tests\Algorithm\PathFinding\PathTest:testDiagonalPathLength' => ['description' => 'The diagonal euclidean path length is calculated correctly'], - 'phpOMS\tests\Algorithm\PathFinding\PathTest:testStraightPathLength' => ['description' => 'The straight euclidean path length is calculated correctly'], - 'phpOMS\tests\Algorithm\PathFinding\PathTest:testPathExpansion' => ['description' => 'The path is correctly expanded in case only jump points are defined'], + 'phpOMS\tests\Algorithm\PathFinding\PathTest' => ['description' => 'Path on grid', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\PathTest:testDefault' => ['description' => 'The path has the expected values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\PathTest:testDiagonalPathLength' => ['description' => 'The diagonal euclidean path length is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\PathTest:testStraightPathLength' => ['description' => 'The straight euclidean path length is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\PathFinding\PathTest:testPathExpansion' => ['description' => 'The path is correctly expanded in case only jump points are defined', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\BitonicSortTest' => ['description' => 'Bitonic sort'], - 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\BitonicSortTest' => ['description' => 'Bitonic sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BitonicSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\BubbleSortTest' => ['description' => 'Bubble sort'], - 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\BubbleSortTest' => ['description' => 'Bubble sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BubbleSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\BucketSortTest' => ['description' => 'Bucket sort'], - 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], - 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testNoBuckets' => ['description' => 'If no buckets are specified the elements cannot be sorted and an empty result is returned'], + 'phpOMS\tests\Algorithm\Sort\BucketSortTest' => ['description' => 'Bucket sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\BucketSortTest:testNoBuckets' => ['description' => 'If no buckets are specified the elements cannot be sorted and an empty result is returned', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest' => ['description' => 'CocktailShaker sort'], - 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest' => ['description' => 'CocktailShaker sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CocktailShakerSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\CombSortTest' => ['description' => 'Comb sort'], - 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\CombSortTest' => ['description' => 'Comb sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CombSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\CycleSortTest' => ['description' => 'Cycle sort'], - 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\CycleSortTest' => ['description' => 'Cycle sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\CycleSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\GnomeSortTest' => ['description' => 'Gnome sort'], - 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\GnomeSortTest' => ['description' => 'Gnome sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\GnomeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\HeapSortTest' => ['description' => 'Heap sort'], - 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\HeapSortTest' => ['description' => 'Heap sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\HeapSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\InsertionSortTest' => ['description' => 'Insertion sort'], - 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\InsertionSortTest' => ['description' => 'Insertion sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\InsertionSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\IntroSortTest' => ['description' => 'Intro sort'], - 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\IntroSortTest' => ['description' => 'Intro sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\IntroSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\MergeSortTest' => ['description' => 'Merge sort'], - 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\MergeSortTest' => ['description' => 'Merge sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\MergeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest' => ['description' => 'OddEven sort'], - 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest' => ['description' => 'OddEven sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\OddEvenSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\PancakeSortTest' => ['description' => 'Pancake sort'], - 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\PancakeSortTest' => ['description' => 'Pancake sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\PancakeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\QuickSortTest' => ['description' => 'Quick sort'], - 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\QuickSortTest' => ['description' => 'Quick sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\QuickSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\SelectionSortTest' => ['description' => 'Selection sort'], - 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\SelectionSortTest' => ['description' => 'Selection sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\SelectionSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\ShellSortTest' => ['description' => 'Shell sort'], - 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\ShellSortTest' => ['description' => 'Shell sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\ShellSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\StoogeSortTest' => ['description' => 'Stooge sort'], - 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\StoogeSortTest' => ['description' => 'Stooge sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\StoogeSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Algorithm\Sort\TimSortTest' => ['description' => 'Tim sort'], - 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself'], - 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order'], - 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order'], + 'phpOMS\tests\Algorithm\Sort\TimSortTest' => ['description' => 'Tim sort', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSmallList' => ['description' => 'A list with one element returns the list with the element itself', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSortASC' => ['description' => 'A list ot elements can be sorted in ASC order', 'type' => 'framework'], + 'phpOMS\tests\Algorithm\Sort\TimSortTest:testSortDESC' => ['description' => 'A list ot elements can be sorted in DESC order', 'type' => 'framework'], - 'phpOMS\tests\Asset\AssetManagerTest' => ['description' => 'Asset manager to handle/access assets'], - 'phpOMS\tests\Asset\AssetManagerTest:testAttributes' => ['description' => 'The manager has the expected member variables'], - 'phpOMS\tests\Asset\AssetManagerTest:testDefault' => ['description' => 'The manager has the expected default values after initialization'], - 'phpOMS\tests\Asset\AssetManagerTest:testAddAsset' => ['description' => 'An asset can be added to the manager'], - 'phpOMS\tests\Asset\AssetManagerTest:testRetrieveAsset' => ['description' => 'An asset can be retrieved from the manager'], - 'phpOMS\tests\Asset\AssetManagerTest:testInvalidAssetReplacement' => ['description' => 'An asset can only be added once to the manager (no duplication unless overwritten)'], - 'phpOMS\tests\Asset\AssetManagerTest:testAssetReplacement' => ['description' => 'An asset can be replaced upon request'], - 'phpOMS\tests\Asset\AssetManagerTest:testAssetRemove' => ['description' => 'An asset can be removed from the manager'], + 'phpOMS\tests\Asset\AssetManagerTest' => ['description' => 'Asset manager to handle/access assets', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testAttributes' => ['description' => 'The manager has the expected member variables', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testDefault' => ['description' => 'The manager has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testAddAsset' => ['description' => 'An asset can be added to the manager', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testRetrieveAsset' => ['description' => 'An asset can be retrieved from the manager', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testInvalidAssetReplacement' => ['description' => 'An asset can only be added once to the manager (no duplication unless overwritten)', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testAssetReplacement' => ['description' => 'An asset can be replaced upon request', 'type' => 'framework'], + 'phpOMS\tests\Asset\AssetManagerTest:testAssetRemove' => ['description' => 'An asset can be removed from the manager', 'type' => 'framework'], - 'phpOMS\tests\Auth\AuthTest' => ['description' => 'Asset manager to handle/access assets'], - 'phpOMS\tests\Auth\AuthTest:testAuthWithEmptyHttpSession' => ['description' => 'The default http session doesn\'t authenticate an account'], + 'phpOMS\tests\Auth\AuthTest' => ['description' => 'Asset manager to handle/access assets', 'type' => 'framework'], + 'phpOMS\tests\Auth\AuthTest:testAuthWithEmptyHttpSession' => ['description' => 'The default http session doesn\'t authenticate an account', 'type' => 'framework'], - 'phpOMS\tests\Business\Finance\DepreciationTest' => ['description' => 'Depreciation calculations'], - 'phpOMS\tests\Business\Finance\DepreciationTest:testStraightLine' => ['description' => 'The straight line depreciation and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\DepreciationTest:testArithmeticDegressivDepreciation' => ['description' => 'The arithmetic degressiv depreciation and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\DepreciationTest:testArithmeticProgressivDepreciation' => ['description' => 'The arithmetic progressiv depreciation and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\DepreciationTest:testGeometricProgressivDepreciation' => ['description' => 'The geometric progressiv depreciation and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\DepreciationTest:testGeometricDegressivDepreciation' => ['description' => 'The geometric degressiv depreciation and reverse value calculations are correct'], + 'phpOMS\tests\Business\Finance\DepreciationTest' => ['description' => 'Depreciation calculations', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\DepreciationTest:testStraightLine' => ['description' => 'The straight line depreciation and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\DepreciationTest:testArithmeticDegressivDepreciation' => ['description' => 'The arithmetic degressiv depreciation and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\DepreciationTest:testArithmeticProgressivDepreciation' => ['description' => 'The arithmetic progressiv depreciation and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\DepreciationTest:testGeometricProgressivDepreciation' => ['description' => 'The geometric progressiv depreciation and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\DepreciationTest:testGeometricDegressivDepreciation' => ['description' => 'The geometric degressiv depreciation and reverse value calculations are correct', 'type' => 'framework'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest' => ['description' => 'Finance formulas'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnualPercentageYield' => ['description' => 'The annual percentage yield (APY) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuity' => ['description' => 'The future value of annuity (FVA) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuityContinuousCompounding' => ['description' => 'The future value of annuity continuous compounding (FVACC) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnuityPaymentPV' => ['description' => 'The annuity payment from the present value (PV) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnuityPaymentFV' => ['description' => 'The annuity payment from the future value (FV) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnutiyPaymentFactorPV' => ['description' => 'The annuity payment from the present value (PV) and reverse value calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfAnnuity' => ['description' => 'The present value of the annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueAnnuityFactor' => ['description' => 'The present value annuity factor of the annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfAnnuityDue' => ['description' => 'The due present value the annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuityDue' => ['description' => 'The due future value the annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRelativeMarketShare' => ['description' => 'The relative market share calculations by shares and ales are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAssetRatios' => ['description' => 'The asset ratio calculations are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBalanceRatios' => ['description' => 'Balance ratio calculations for DII, Receivables/Turnover, and more are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDeptRatios' => ['description' => 'Dept ratios for dept coverage, dept to equity and dept to income are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testReturnOnBalancePositions' => ['description' => 'Return on balance statement positions are correct (e.g. return on assets, on equity)'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBalancePLRatios' => ['description' => 'Balance / P&L ratios are correct (e.g. inventory turnover, net profit margin)'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRatios' => ['description' => 'Not Implemented!!!'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testCompound' => ['description' => 'Compound calculations for interest, principal and periods are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testContinuousCompounding' => ['description' => 'Continuous compound calculations for interest, principal and periods are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testSimpleInterest' => ['description' => 'Calculations for interest, principal and periods are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDiscountedPaybackPeriod' => ['description' => 'The descounted payback period is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDoublingTime' => ['description' => 'Test the correct calculation of the growth rate in order to double and vice versa'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDoublingTimeContinuousCompounding' => ['description' => 'Test the correct calculation of the growth rate in order to double and vice versa with continuous compounding'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testEquivalentAnnualAnnuity' => ['description' => 'Calculations for equivalent annual annuity are correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFreeCashFlowToEquity' => ['description' => 'The free cash flow to equity calculation is correct (how much cash is available after expenses and dept payments)'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFreeCashFlowToFirm' => ['description' => 'The free cash flow to firm calculation is correct (how much cash is available after expenses)'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValue' => ['description' => 'The future value calculation is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueContinuousCompounding' => ['description' => 'The future value calculation including continuous compounding is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testValueFactor' => ['description' => 'The future value factor calculation is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGeometricMeanReturn' => ['description' => 'The calculation of the geometric mean of multiple return rates is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityFV' => ['description' => 'The calculation of the future value of the growing annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPaymentFV' => ['description' => 'The calculation of the payment based on the future value of the growing annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPV' => ['description' => 'The calculation of the present value of the growing annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPaymentPV' => ['description' => 'The calculation of the payment based on the present value of the growing annuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingPerpetuityPV' => ['description' => 'The calculation of the present value of the growing perpetuity is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetPresentValue' => ['description' => 'The calculation of the net present value is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testEmptyNetPresentValue' => ['description' => 'No cash flows in the net prsent value calculation result in 0'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRealRateOfReturn' => ['description' => 'The calculation of the real rate of return is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetWorkingCapital' => ['description' => 'The calculation of the net working capital is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNumberOfPeriodsPVFV' => ['description' => 'The periods to reach a future value based on the present value is calculated correctly'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValue' => ['description' => 'The calculation of the present value is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueContinuousCompounding' => ['description' => 'The calculation of the present value using continuous compounding is correct'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest' => ['description' => 'Finance formulas', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnualPercentageYield' => ['description' => 'The annual percentage yield (APY) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuity' => ['description' => 'The future value of annuity (FVA) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuityContinuousCompounding' => ['description' => 'The future value of annuity continuous compounding (FVACC) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnuityPaymentPV' => ['description' => 'The annuity payment from the present value (PV) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnuityPaymentFV' => ['description' => 'The annuity payment from the future value (FV) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAnnutiyPaymentFactorPV' => ['description' => 'The annuity payment from the present value (PV) and reverse value calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfAnnuity' => ['description' => 'The present value of the annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueAnnuityFactor' => ['description' => 'The present value annuity factor of the annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfAnnuityDue' => ['description' => 'The due present value the annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueOfAnnuityDue' => ['description' => 'The due future value the annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRelativeMarketShare' => ['description' => 'The relative market share calculations by shares and ales are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testAssetRatios' => ['description' => 'The asset ratio calculations are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBalanceRatios' => ['description' => 'Balance ratio calculations for DII, Receivables/Turnover, and more are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDeptRatios' => ['description' => 'Dept ratios for dept coverage, dept to equity and dept to income are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testReturnOnBalancePositions' => ['description' => 'Return on balance statement positions are correct (e.g. return on assets, on equity)', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBalancePLRatios' => ['description' => 'Balance / P&L ratios are correct (e.g. inventory turnover, net profit margin)', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRatios' => ['description' => 'Not Implemented!!!', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testCompound' => ['description' => 'Compound calculations for interest, principal and periods are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testContinuousCompounding' => ['description' => 'Continuous compound calculations for interest, principal and periods are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testSimpleInterest' => ['description' => 'Calculations for interest, principal and periods are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDiscountedPaybackPeriod' => ['description' => 'The descounted payback period is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDoublingTime' => ['description' => 'Test the correct calculation of the growth rate in order to double and vice versa', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDoublingTimeContinuousCompounding' => ['description' => 'Test the correct calculation of the growth rate in order to double and vice versa with continuous compounding', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testEquivalentAnnualAnnuity' => ['description' => 'Calculations for equivalent annual annuity are correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFreeCashFlowToEquity' => ['description' => 'The free cash flow to equity calculation is correct (how much cash is available after expenses and dept payments)', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFreeCashFlowToFirm' => ['description' => 'The free cash flow to firm calculation is correct (how much cash is available after expenses)', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValue' => ['description' => 'The future value calculation is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testFutureValueContinuousCompounding' => ['description' => 'The future value calculation including continuous compounding is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testValueFactor' => ['description' => 'The future value factor calculation is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGeometricMeanReturn' => ['description' => 'The calculation of the geometric mean of multiple return rates is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityFV' => ['description' => 'The calculation of the future value of the growing annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPaymentFV' => ['description' => 'The calculation of the payment based on the future value of the growing annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPV' => ['description' => 'The calculation of the present value of the growing annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingAnnuityPaymentPV' => ['description' => 'The calculation of the payment based on the present value of the growing annuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testGrowingPerpetuityPV' => ['description' => 'The calculation of the present value of the growing perpetuity is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetPresentValue' => ['description' => 'The calculation of the net present value is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testEmptyNetPresentValue' => ['description' => 'No cash flows in the net prsent value calculation result in 0', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testRealRateOfReturn' => ['description' => 'The calculation of the real rate of return is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetWorkingCapital' => ['description' => 'The calculation of the net working capital is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNumberOfPeriodsPVFV' => ['description' => 'The periods to reach a future value based on the present value is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValue' => ['description' => 'The calculation of the present value is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueContinuousCompounding' => ['description' => 'The calculation of the present value using continuous compounding is correct', 'type' => 'framework'], - 'phpOMS\tests\Business\Finance\LoanTest' => ['description' => 'Loan formulas'], - 'phpOMS\tests\Business\Finance\LoanTest:testLoanToDepositRatio' => ['description' => 'The loan to deposit ratio is correct'], - 'phpOMS\tests\Business\Finance\LoanTest:testLoanToValueRatio' => ['description' => 'The loan to value ratio is correct'], - 'phpOMS\tests\Business\Finance\LoanTest:testPaymentsOnBalloonLoan' => ['description' => 'The balloon loan payments are correct for a given balloon'], - 'phpOMS\tests\Business\Finance\LoanTest:testBalloonBalanceOfLoan' => ['description' => 'The balloon loan residual value (balloon) is correct for given payments'], - 'phpOMS\tests\Business\Finance\LoanTest:testLoanPayment' => ['description' => 'The loan payments are correct for a given interest rate and period [continuous compounding]'], - 'phpOMS\tests\Business\Finance\LoanTest:testRemainingBalanceLoan' => ['description' => 'The residual value is correct for a given payment amount, interest rate and period [continuous compounding]'], + 'phpOMS\tests\Business\Finance\LoanTest' => ['description' => 'Loan formulas', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testLoanToDepositRatio' => ['description' => 'The loan to deposit ratio is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testLoanToValueRatio' => ['description' => 'The loan to value ratio is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testPaymentsOnBalloonLoan' => ['description' => 'The balloon loan payments are correct for a given balloon', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testBalloonBalanceOfLoan' => ['description' => 'The balloon loan residual value (balloon) is correct for given payments', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testLoanPayment' => ['description' => 'The loan payments are correct for a given interest rate and period [continuous compounding]', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LoanTest:testRemainingBalanceLoan' => ['description' => 'The residual value is correct for a given payment amount, interest rate and period [continuous compounding]', 'type' => 'framework'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest' => ['description' => 'Stock & bond related formulas'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBondEquivalentYield' => ['description' => 'The calculation the bond yield based on face value and price is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testExpectedReturnCAPM' => ['description' => 'The calculation of the return of the capital asset pricing model is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testCapitalGainsYield' => ['description' => 'The capital gains yield calculation is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDilutedEarningsPerShare' => ['description' => 'The diluted earnings per share calculation is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testHoldingPeriodReturn' => ['description' => 'The calculation of the absolute return for multiple holding periods is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testTaxEquivalentYield' => ['description' => 'The tax equivalent yield is calculated correctly'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetAssetValue' => ['description' => 'The net asset value is calculated correctly'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfStockConstantGrowth' => ['description' => 'The calculation of the present value of a stock with constant growth rate is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testTotalStockReturn' => ['description' => 'The total stock return including dividends and sales price is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testYieldToMaturity' => ['description' => 'The calculation of the yield of a bond is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testZeroCouponBondValue' => ['description' => 'The calculation of value of the zero coupon bond is correct'], - 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testZeroCouponBondEffectiveYield' => ['description' => 'The calculation of the yield of a zero coupon bond is correct'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest' => ['description' => 'Stock & bond related formulas', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testBondEquivalentYield' => ['description' => 'The calculation the bond yield based on face value and price is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testExpectedReturnCAPM' => ['description' => 'The calculation of the return of the capital asset pricing model is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testCapitalGainsYield' => ['description' => 'The capital gains yield calculation is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testDilutedEarningsPerShare' => ['description' => 'The diluted earnings per share calculation is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testHoldingPeriodReturn' => ['description' => 'The calculation of the absolute return for multiple holding periods is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testTaxEquivalentYield' => ['description' => 'The tax equivalent yield is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testNetAssetValue' => ['description' => 'The net asset value is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testPresentValueOfStockConstantGrowth' => ['description' => 'The calculation of the present value of a stock with constant growth rate is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testTotalStockReturn' => ['description' => 'The total stock return including dividends and sales price is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testYieldToMaturity' => ['description' => 'The calculation of the yield of a bond is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testZeroCouponBondValue' => ['description' => 'The calculation of value of the zero coupon bond is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\FinanceFormulasTest:testZeroCouponBondEffectiveYield' => ['description' => 'The calculation of the yield of a zero coupon bond is correct', 'type' => 'framework'], - 'phpOMS\tests\Business\Finance\LorenzkurveTest' => ['description' => 'Lorenz kurve'], - 'phpOMS\tests\Business\Finance\LorenzkurveTest:testGiniCoefficient' => ['description' => 'The gini coefficient calculation is correct'], + 'phpOMS\tests\Business\Finance\LorenzkurveTest' => ['description' => 'Lorenz kurve', 'type' => 'framework'], + 'phpOMS\tests\Business\Finance\LorenzkurveTest:testGiniCoefficient' => ['description' => 'The gini coefficient calculation is correct', 'type' => 'framework'], - 'phpOMS\tests\Business\Marketing\MetricsTest' => ['description' => 'General marketing metrics'], - 'phpOMS\tests\Business\Marketing\MetricsTest:testCustomerRetention' => ['description' => 'Test the correctnes of the customer retention calculation'], + 'phpOMS\tests\Business\Marketing\MetricsTest' => ['description' => 'General marketing metrics', 'type' => 'framework'], + 'phpOMS\tests\Business\Marketing\MetricsTest:testCustomerRetention' => ['description' => 'Test the correctnes of the customer retention calculation', 'type' => 'framework'], - 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest' => ['description' => 'Net promoter'], - 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest:testDefault' => ['description' => 'The net promoter has the expected default values after initialization'], - 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest:testScoreDetractorPassivePromotor' => ['description' => 'The net promotor score, detractors, passives and promotors are correct'], + 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest' => ['description' => 'Net promoter', 'type' => 'framework'], + 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest:testDefault' => ['description' => 'The net promoter has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Business\Marketing\NetPromoterScoreTest:testScoreDetractorPassivePromotor' => ['description' => 'The net promotor score, detractors, passives and promotors are correct', 'type' => 'framework'], - 'phpOMS\tests\Business\Programming\MetricsTest' => ['description' => 'General programming metrics'], - 'phpOMS\tests\Business\Programming\MetricsTest:testABCMetric' => ['description' => 'Test correctness of the ABC calculation'], - 'phpOMS\tests\Business\Programming\MetricsTest:testCRAPMetric' => ['description' => 'Test correctness of CRAP score'], + 'phpOMS\tests\Business\Programming\MetricsTest' => ['description' => 'General programming metrics', 'type' => 'framework'], + 'phpOMS\tests\Business\Programming\MetricsTest:testABCMetric' => ['description' => 'Test correctness of the ABC calculation', 'type' => 'framework'], + 'phpOMS\tests\Business\Programming\MetricsTest:testCRAPMetric' => ['description' => 'Test correctness of CRAP score', 'type' => 'framework'], - 'phpOMS\tests\Business\Sales\MarketShareEstimationTest' => ['description' => 'Market share calculations'], - 'phpOMS\tests\Business\Sales\MarketShareEstimationTest:testZipfRank' => ['description' => 'The rank calculated with Zipf is correct'], - 'phpOMS\tests\Business\Sales\MarketShareEstimationTest:testZipfShare' => ['description' => 'The market share by rank calculated with Zipf is correct'], + 'phpOMS\tests\Business\Sales\MarketShareEstimationTest' => ['description' => 'Market share calculations', 'type' => 'framework'], + 'phpOMS\tests\Business\Sales\MarketShareEstimationTest:testZipfRank' => ['description' => 'The rank calculated with Zipf is correct', 'type' => 'framework'], + 'phpOMS\tests\Business\Sales\MarketShareEstimationTest:testZipfShare' => ['description' => 'The market share by rank calculated with Zipf is correct', 'type' => 'framework'], - 'phpOMS\tests\Config\OptionsTraitTest' => ['description' => 'Helper for managing otpions'], - 'phpOMS\tests\Config\OptionsTraitTest:testOptionTraitMembers' => ['description' => 'The option helper has the expected attributes'], - 'phpOMS\tests\Config\OptionsTraitTest:testDefault' => ['description' => 'The option helper has the expected default values after initialization'], - 'phpOMS\tests\Config\OptionsTraitTest:testAdd' => ['description' => 'Options can be added to the helper'], - 'phpOMS\tests\Config\OptionsTraitTest:testAddMultiple' => ['description' => 'Multiple options can be added to the helper in one go'], - 'phpOMS\tests\Config\OptionsTraitTest:testGetMultiple' => ['description' => 'Multiple options can be retrieved'], - 'phpOMS\tests\Config\OptionsTraitTest:testOverwrite' => ['description' => 'Options can be overwritten/changed'], + 'phpOMS\tests\Config\OptionsTraitTest' => ['description' => 'Helper for managing otpions', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testOptionTraitMembers' => ['description' => 'The option helper has the expected attributes', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testDefault' => ['description' => 'The option helper has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testAdd' => ['description' => 'Options can be added to the helper', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testAddMultiple' => ['description' => 'Multiple options can be added to the helper in one go', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testGetMultiple' => ['description' => 'Multiple options can be retrieved', 'type' => 'framework'], + 'phpOMS\tests\Config\OptionsTraitTest:testOverwrite' => ['description' => 'Options can be overwritten/changed', 'type' => 'framework'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest' => ['description' => 'Pool for caches'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testDefault' => ['description' => 'The pool has the expected default values after initialization'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testAdd' => ['description' => 'New cache connections can be added to the pool'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testOverwrite' => ['description' => 'Cache connections cannot be overwritten with a different cache connection'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testGet' => ['description' => 'Cache connections can be accessed with an identifier'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testGetDefault' => ['description' => 'By default a null cache is returned if no cache connection exists for the identifier'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testCreate' => ['description' => 'Cache connections can created by the pool and automatically get added but not overwritten'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testRemove' => ['description' => 'Cache connections can be removed from the pool'], - 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testRemoveInvalid' => ['description' => 'Removing a cache with an invalid identifier will result in no actions'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest' => ['description' => 'Pool for caches', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testDefault' => ['description' => 'The pool has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testAdd' => ['description' => 'New cache connections can be added to the pool', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testOverwrite' => ['description' => 'Cache connections cannot be overwritten with a different cache connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testGet' => ['description' => 'Cache connections can be accessed with an identifier', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testGetDefault' => ['description' => 'By default a null cache is returned if no cache connection exists for the identifier', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testCreate' => ['description' => 'Cache connections can created by the pool and automatically get added but not overwritten', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testRemove' => ['description' => 'Cache connections can be removed from the pool', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\CachePoolTest:testRemoveInvalid' => ['description' => 'Removing a cache with an invalid identifier will result in no actions', 'type' => 'framework'], - 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest' => ['description' => 'Factory for generating cache connections'], - 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateFileCache' => ['description' => 'The file cache can be created'], - 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateMemCached' => ['description' => 'The memcached cache can be created'], - 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateRedisCache' => ['description' => 'The redis cache can be created'], - 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testInvalidCacheType' => ['description' => 'An invalid cache type results in an exception'], + 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest' => ['description' => 'Factory for generating cache connections', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateFileCache' => ['description' => 'The file cache can be created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateMemCached' => ['description' => 'The memcached cache can be created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testCreateRedisCache' => ['description' => 'The redis cache can be created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\ConnectionFactoryTest:testInvalidCacheType' => ['description' => 'An invalid cache type results in an exception', 'type' => 'framework'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest' => ['description' => 'File cache connection'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDefault' => ['description' => 'The file cache connection has the expected default values after initialization'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testConnect' => ['description' => 'The connection to a dedicated cache directory can be established (none-exising directories get created)'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testSetInputOutput' => ['description' => 'Different cache data (types) can be set and returned'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testAddInputOutput' => ['description' => 'Cache data can bet added and returned'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidOverwrite' => ['description' => 'Cache data cannot be added if it already exists'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testReplace' => ['description' => 'Existing cache data can be replaced'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidReplace' => ['description' => 'None-existing cache data cannot be replaced'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDelete' => ['description' => 'Cache data can be deleted'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testStats' => ['description' => 'The cache correctly handles general cache information'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testFlush' => ['description' => 'The cache can be flushed'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testUnexpiredInputOutput' => ['description' => 'Cache data can be set and returned with expiration limits'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testExpiredInputOutput' => ['description' => 'EExpired cache data can be forced to return'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testForceExpiredInputOutput' => ['description' => 'Expired cache data cannot be returned'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidDeleteUnexpired' => ['description' => 'Unexpired cache data connot be delete if lower expiration is defined'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDeleteExpired' => ['description' => 'Expired cache data can be deleted if higher expiration is defined'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testForceDeleteUnexpired' => ['description' => 'Unexpired data can be force deleted with lower expiration date'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testFlushExpired' => ['description' => 'Cach data can be flushed by expiration date'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testBadCacheStatus' => ['description' => 'A bad cache status will prevent all cache actions'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidCachePath' => ['description' => 'A invalid cache connection will throw an InvalidConnectionConfigException'], - 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidDataType' => ['description' => 'A invalid data type will throw an InvalidArgumentException'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest' => ['description' => 'File cache connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDefault' => ['description' => 'The file cache connection has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testConnect' => ['description' => 'The connection to a dedicated cache directory can be established (none-exising directories get created)', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testSetInputOutput' => ['description' => 'Different cache data (types) can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testAddInputOutput' => ['description' => 'Cache data can bet added and returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidOverwrite' => ['description' => 'Cache data cannot be added if it already exists', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testReplace' => ['description' => 'Existing cache data can be replaced', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidReplace' => ['description' => 'None-existing cache data cannot be replaced', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDelete' => ['description' => 'Cache data can be deleted', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testStats' => ['description' => 'The cache correctly handles general cache information', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testFlush' => ['description' => 'The cache can be flushed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testUnexpiredInputOutput' => ['description' => 'Cache data can be set and returned with expiration limits', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testExpiredInputOutput' => ['description' => 'Expired cache data can be forced to return', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testForceExpiredInputOutput' => ['description' => 'Expired cache data cannot be returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidDeleteUnexpired' => ['description' => 'Unexpired cache data connot be delete if lower expiration is defined', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testDeleteExpired' => ['description' => 'Expired cache data can be deleted if higher expiration is defined', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testForceDeleteUnexpired' => ['description' => 'Unexpired data can be force deleted with lower expiration date', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testFlushExpired' => ['description' => 'Cach data can be flushed by expiration date', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testBadCacheStatus' => ['description' => 'A bad cache status will prevent all cache actions', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidCachePath' => ['description' => 'A invalid cache connection will throw an InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cache\Connection\FileCacheTest:testInvalidDataType' => ['description' => 'A invalid data type will throw an InvalidArgumentException', 'type' => 'framework'], - 'phpOMS\tests\Localization\MoneyTest' => ['description' => 'Money datatype for internal representation of money'], - 'phpOMS\tests\Localization\MoneyTest:testDefaultMemberVariables' => ['description' => 'The datatype has the expected member variables and default values'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyDefaultStringRepresentation' => ['description' => 'The datatype returns the correct default string representation (#,###.##)'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyDecimalPlaces' => ['description' => 'The datatype returns up to 4 decimal places if requested (#,###.####)'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyStringToIntConversion' => ['description' => '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'], - 'phpOMS\tests\Localization\MoneyTest:testCorrectValueChange' => ['description' => 'The datatype allows to modify the value by overwriting it with new string characters or integers correctly'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyLocalization' => ['description' => 'The datatype can print out money with different thousands, decimals and currency symbols as per definition by the user'], - 'phpOMS\tests\Localization\MoneyTest:testMoneySerialization' => ['description' => 'The string character input is correctly serialized to the numeric representation'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyUnserialization' => ['description' => 'The string character input is correctly unserialized from a numeric representation'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyAddSub' => ['description' => 'The datatype correctly adds and subtracts the different money representations in string, numeric or Money type'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyMultDiv' => ['description' => 'The datatype correctly multiplies and divides the money with numerics'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyAbsoluteValue' => ['description' => 'The datatype correctly handles the absolute value'], - 'phpOMS\tests\Localization\MoneyTest:testMoneyPower' => ['description' => 'The datatype correctly handles the power operator'], + // todo: memcached + // todo: redis cache - 'phpOMS\tests\System\SystemUtilsTest' => ['description' => 'System information'], - 'phpOMS\tests\System\SystemUtilsTest:testRAM' => ['description' => 'Test if it is possible to get information about the available RAM and usage (on Windows)'], - 'phpOMS\tests\System\SystemUtilsTest:testCPUUsage' => ['description' => 'Test if it is possible to get information about the CPU usage'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest' => ['description' => 'CookieJar to handle http cookies', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testDefault' => ['description' => 'The cookie jar has the expected default values and functionality after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testCookieInputOutput' => ['description' => 'Cookie values can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testOverwrite' => ['description' => 'Cookie values can be forced to overwrite', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testInvalidOverwrite' => ['description' => 'Cookie values cannot be overwritten', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testRemove' => ['description' => 'Cookie values can be removed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testInvalidRemove' => ['description' => 'None-existing cookie values cannot be removed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testDeleteLocked' => ['description' => 'Values cannot be removed from a locked cookie and throws a LockException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Cookie\CookieJarTest:testSaveLocked' => ['description' => 'A locked coockie cannot be saved and throws a LockException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest' => ['description' => 'Pool for database connections', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testDefault' => ['description' => 'The pool has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testCreateConnection' => ['description' => 'A database connection can be created by the pool', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testInvalidOverwrite' => ['description' => 'Database connections cannot be overwritten', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testAddConnections' => ['description' => 'Existing database connections can be added to the pool', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testRemoveConnections' => ['description' => 'Database connections can be removed from the pool', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testInvalidRemove' => ['description' => 'Invalid database connections cannot be removed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DatabasePoolTest:testDefaultConnection' => ['description' => 'The first connection added to the pool is the default connection', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest' => ['description' => 'Datamapper for database models', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testDefault' => ['description' => 'The datamapper has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testCreate' => ['description' => 'The datamapper sucessfully creates a database entry of a model', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testCreateArray' => ['description' => 'The datamapper sucessfully creates a database entry of array data', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testRead' => ['description' => 'The datamapper sucessfully returns a database entry as model', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testReadArray' => ['description' => 'The datamapper sucessfully returns a database entry as array', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testUpdate' => ['description' => 'The datamapper sucessfully updates a database entry from a model', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testUpdateArray' => ['description' => 'The datamapper sucessfully updates a database entry from an array', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\DataMapperAbstractTest:testDelete' => ['description' => 'The datamapper sucessfully deletes a database entry from a model', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest' => ['description' => 'Database connection factory', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest:testCreateMysql' => ['description' => 'The mysql connection can be successfully created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest:testCreatePostgres' => ['description' => 'The postgresql connection can be successfully created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest:testCreateSqlsrv' => ['description' => 'The sqlserver connection can be successfully created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest:testCreateSqlite' => ['description' => 'The sqlite connection can be successfully created', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\ConnectionFactoryTest:testInvalidDatabaseType' => ['description' => 'A invalid database type throws a InvalidArgumentException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest' => ['description' => 'Mysql connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testConnect' => ['description' => 'Valid mysql connection data result in a valid database connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidDatabaseType' => ['description' => 'A missing database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidHost' => ['description' => 'A missing database host throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidPort' => ['description' => 'A missing database port throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidDatabase' => ['description' => 'A missing database throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidLogin' => ['description' => 'A missing database login throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidPassword' => ['description' => 'A missing database password throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidDatabaseTypeName' => ['description' => 'A invalid database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\MysqlConnectionTest:testInvalidDatabaseName' => ['description' => 'A invalid database throws a InvalidConnectionConfigException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest' => ['description' => 'Postgresql connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testConnect' => ['description' => 'Valid postgresql connection data result in a valid database connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidDatabaseType' => ['description' => 'A missing database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidHost' => ['description' => 'A missing database host throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidPort' => ['description' => 'A missing database port throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidDatabase' => ['description' => 'A missing database throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidLogin' => ['description' => 'A missing database login throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidPassword' => ['description' => 'A missing database password throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\PostgresConnectionTest:testInvalidDatabaseTypeName' => ['description' => 'A invalid database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Connection\SQLiteConnectionTest' => ['description' => 'Postgresql connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SQLiteConnectionTest:testConnect' => ['description' => 'Valid sqlite connection data result in a valid database connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SQLiteConnectionTest:testInvalidDatabaseType' => ['description' => 'A missing database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SQLiteConnectionTest:testInvalidDatabase' => ['description' => 'A missing database throws a InvalidConnectionConfigException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest' => ['description' => 'Mysql connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testConnect' => ['description' => 'Valid mysql connection data result in a valid database connection', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidDatabaseType' => ['description' => 'A missing database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidHost' => ['description' => 'A missing database host throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidPort' => ['description' => 'A missing database port throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidDatabase' => ['description' => 'A missing database throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidLogin' => ['description' => 'A missing database login throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidPassword' => ['description' => 'A missing database password throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidDatabaseTypeName' => ['description' => 'A invalid database type throws a InvalidConnectionConfigException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Connection\SqlServerConnectionTest:testInvalidDatabaseName' => ['description' => 'A invalid database throws a InvalidConnectionConfigException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest' => ['description' => 'Query builder for sql queries', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlSelect' => ['description' => 'Mysql selects form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlOrder' => ['description' => 'Mysql orders form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlOffsetLimit' => ['description' => 'Mysql offsets and limits form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlGroup' => ['description' => 'Mysql groupings form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlWheres' => ['description' => 'Mysql wheres form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlJoins' => ['description' => 'Mysql joins form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlInsert' => ['description' => 'Mysql inserts form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlDelete' => ['description' => 'Mysql deletes form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testMysqlUpdate' => ['description' => 'Mysql updates form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testRawInputOutput' => ['description' => 'Raw queries get output as defined', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testReadOnlyRaw' => ['description' => 'Read only queries don\'t allow drops', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testReadOnlyInsert' => ['description' => 'Read only queries don\'t allow inserts', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testReadOnlyUpdate' => ['description' => 'Read only queries don\'t allow updates', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testReadOnlyDelete' => ['description' => 'Read only queries don\'t allow deletes', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidSelectParameter' => ['description' => 'Invalid select types throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidFromParameter' => ['description' => 'Invalid from types throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidGroupByParameter' => ['description' => 'Invalid group types throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidWhereOperator' => ['description' => 'Invalid where operators throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidJoinTable' => ['description' => 'Invalid join types throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidJoinOperator' => ['description' => 'Invalid join operators throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidOrderType' => ['description' => 'Invalid order types throw a InvalidArgumentException', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\BuilderTest:testInvalidOrderColumnType' => ['description' => 'Invalid order column types throw a InvalidArgumentException', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Query\Grammar\GrammarTest' => ['description' => 'Basic sql query grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\Grammar\GrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\Grammar\GrammarTest:testPrefixInputOutput' => ['description' => 'The grammar can define a default table prefix and return this value', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Query\Grammar\MysqlGrammarTest' => ['description' => 'Mysql sql query grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\Grammar\MysqlGrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Query\Grammar\SQLiteGrammarTest' => ['description' => 'SQLite sql query grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Query\Grammar\SQLiteGrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Schema\BuilderTest' => ['description' => 'Query builder for sql schemas', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\BuilderTest:testMysqlDrop' => ['description' => 'Mysql drops form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\BuilderTest:testMysqlShowTables' => ['description' => ' Mysql show tables form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\BuilderTest:testMysqlShowFields' => ['description' => 'Mysql show fields form a valid query', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\BuilderTest:testMysqlCreateTable' => ['description' => 'Mysql create tables form a valid query', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\GrammarTest' => ['description' => 'Basic sql query grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\GrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\GrammarTest:testPrefixInputOutput' => ['description' => 'The grammar can define a default table prefix and return this value', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\MysqlGrammarTest' => ['description' => 'Mysql sql schema grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\MysqlGrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\MysqlGrammarTest:testSchemaInputOutput' => ['description' => 'The the grammar correctly creates and returns a database table', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\MysqlGrammarTest:testDelete' => ['description' => 'The grammar correctly deletes a table', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\SQLiteGrammarTest' => ['description' => 'SQLite sql schema grammar', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Database\Schema\Grammar\SQLiteGrammarTest:testDefault' => ['description' => 'The grammar has the expected default values after initialization', 'type' => 'framework'], + + 'phpOMS\tests\DataStorage\Session\HttpSessionTest' => ['description' => 'Session data handler for http sessions', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testDefault' => ['description' => 'The session has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testInputOutput' => ['description' => 'Session data can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testOverwrite' => ['description' => 'Session data can be forced to overwrite', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testInvalidOverwrite' => ['description' => 'Session data cannot be overwritten', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testRemove' => ['description' => 'Session data can be removed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testInvalidRemove' => ['description' => 'None-existing session data cannot be removed', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testSessionIdInputOutput' => ['description' => 'A session id can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testLockInputOutput' => ['description' => 'A session can be locked for changes', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testLockInvalidSet' => ['description' => 'A locked session cannot add or change data', 'type' => 'framework'], + 'phpOMS\tests\DataStorage\Session\HttpSessionTest:testLockInvalidRemove' => ['description' => 'A locked session cannot remove data', 'type' => 'framework'], + + 'phpOMS\tests\Dispatcher\DispatcherTest' => ['description' => 'Dispatcher for executing request endpoints', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testClosure' => ['description' => 'The disptacher can dispatch a function/closure', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testPathMethod' => ['description' => 'The disptacher can dispatch a method as string representation of a controller', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testPathMethodInArray' => ['description' => 'The disptacher can dispatch a method as array representation of a controller', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testPathStatic' => ['description' => 'The disptacher can dispatch a static method as string representation', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testArray' => ['description' => 'The disptacher can dispatch multiple destinations after another', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testInvalidDestination' => ['description' => 'A invalid destination type throws UnexpectedValueException', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testInvalidControllerPath' => ['description' => 'A invalid controller path thorws a PathException', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testInvalidControllerFunction' => ['description' => 'A invalid function path thorws a Exception', 'type' => 'framework'], + 'phpOMS\tests\Dispatcher\DispatcherTest:testInvalidControllerString' => ['description' => 'A malformed dispatch path thorws UnexpectedValueException', 'type' => 'framework'], + + 'phpOMS\tests\Event\EventManagerTest' => ['description' => 'Event manager for managing and executing events', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testDefault' => ['description' => 'The event manager has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testAdd' => ['description' => 'New events can be added', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testAddMultiple' => ['description' => 'Multiple callbacks can be added to an event', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testDispatchAfterAllConditions' => ['description' => 'An event only gets executed if all conditions and sub conditions are met', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testDispatchAfterSomeConditionsInvalid' => ['description' => 'An event doesn\'t get executed if not all conditions and sub conditions are met', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testInvalidEventTrigger' => ['description' => 'None-existing events cannot be executed/triggered', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testReset' => ['description' => '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', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testNoeReset' => ['description' => 'An event can be defined to not reset after all conditions and subconditions are met. Then an event can be triggered any time.', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testDetach' => ['description' => 'An event can be manually removed/detatched', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testInvalidDetach' => ['description' => 'None-existing events cannot be manually removed/detatched', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testRemove' => ['description' => 'An event can be defined to automatically remove itself after all conditions and subconditions are met and it is executed', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testImportEvents' => ['description' => 'Events can be imported from a file', 'type' => 'framework'], + 'phpOMS\tests\Event\EventManagerTest:testInvalidImportEvents' => ['description' => 'Invalid event files cannot be imported and return a failure', 'type' => 'framework'], + + 'hpOMS\tests\Localization\L11nManagerTest' => ['description' => 'Localization manager for view templates', 'type' => 'framework'], + 'hpOMS\tests\Localization\L11nManagerTest:testDefault' => ['description' => 'The localization manager has the expected default values after initialization', 'type' => 'framework'], + 'hpOMS\tests\Localization\L11nManagerTest:testLanguageInputOutput' => ['description' => 'Language data can be loaded and output as plain text or html', 'type' => 'framework'], + 'hpOMS\tests\Localization\L11nManagerTest:testInvalidModule' => ['description' => 'Loading language for an invalid module throws Exception', 'type' => 'framework'], + 'hpOMS\tests\Localization\L11nManagerTest:testLanguageFile' => ['description' => 'Language data can be loaded from a file', 'type' => 'framework'], + + 'phpOMS\tests\Localization\LocalizationTest' => ['description' => 'Localization for information such as language, currency, location, language specific formatting etc.', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testDefault' => ['description' => 'The localization has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testLanguageInputOutput' => ['description' => 'The language can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidLanguage' => ['description' => 'Setting a invalid language code throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testCountryInputOutput' => ['description' => 'The country can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidCountry' => ['description' => 'Setting a invalid country code throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testTimezoneInputOutput' => ['description' => 'The timezone can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidTimezone' => ['description' => 'Setting a invalid timezone code throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testCurrencyInputOutput' => ['description' => 'The currency can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidCurrency' => ['description' => 'Setting a invalid currency code throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testDatetimeInputOutput' => ['description' => 'The datetime can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testDecimalInputOutput' => ['description' => 'The decimal can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testThousandsInputOutput' => ['description' => 'The thousands can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testAngleInputOutput' => ['description' => 'The angle can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidAngle' => ['description' => 'Setting a invalid angle throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testTemperatureInputOutput' => ['description' => 'The temperature can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidTemperature' => ['description' => 'Setting a invalid temperature throws InvalidEnumValue', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testWeightInputOutput' => ['description' => 'The weight can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testLengthInputOutput' => ['description' => 'The length can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testAreaInputOutput' => ['description' => 'The area can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testVolumeInputOutput' => ['description' => 'The volume can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testSpeedInputOutput' => ['description' => 'The speed can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testLocalizationLoading' => ['description' => 'Localization data can be loaded from a locale file', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidCountryLocalizationLoading' => ['description' => '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', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testMissingLocalizationLoading' => ['description' => 'By default the english locale file will be loaded if no other locale file can be found', 'type' => 'framework'], + 'phpOMS\tests\Localization\LocalizationTest:testInvalidLocalizationLoading' => ['description' => 'Loading localization data from a file with invalid language throws InvalidEnumValue', 'type' => 'framework'], + + // todo: test l11n mappers + + 'phpOMS\tests\Localization\MoneyTest' => ['description' => 'Money datatype for internal representation of money', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testDefaultMemberVariables' => ['description' => 'The datatype has the expected member variables and default values', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyDefaultStringRepresentation' => ['description' => 'The datatype returns the correct default string representation (#,###.##)', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyDecimalPlaces' => ['description' => 'The datatype returns up to 4 decimal places if requested (#,###.####)', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyStringToIntConversion' => ['description' => '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', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testCorrectValueChange' => ['description' => 'The datatype allows to modify the value by overwriting it with new string characters or integers correctly', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyLocalization' => ['description' => 'The datatype can print out money with different thousands, decimals and currency symbols as per definition by the user', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneySerialization' => ['description' => 'The string character input is correctly serialized to the numeric representation', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyUnserialization' => ['description' => 'The string character input is correctly unserialized from a numeric representation', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyAddSub' => ['description' => 'The datatype correctly adds and subtracts the different money representations in string, numeric or Money type', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyMultDiv' => ['description' => 'The datatype correctly multiplies and divides the money with numerics', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyAbsoluteValue' => ['description' => 'The datatype correctly handles the absolute value', 'type' => 'framework'], + 'phpOMS\tests\Localization\MoneyTest:testMoneyPower' => ['description' => 'The datatype correctly handles the power operator', 'type' => 'framework'], + + 'phpOMS\tests\Log\FileLoggerTest' => ['description' => 'File logger for saving log information in a local file', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testDefault' => ['description' => 'The logger has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testNamedLogFile' => ['description' => 'A log file for the output can be specified for the file logger', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testUnnamedLogFile' => ['description' => 'If no log file name is specified a log file per date is created', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testNoFileIfNoLog' => ['description' => 'If no logs are performed no log file will be created', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testLogInputOutput' => ['description' => 'Logs with different levels get correctly stored in the log file', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testPerpetrator' => ['description' => 'Log files can be analyzed for the highest perpetrator (IP address)', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testReadLogs' => ['description' => 'Logs can be read from the log file', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testInvalidReadLogs' => ['description' => 'Invalid log reads return empty log data', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testReadLine' => ['description' => 'A line can be read from a log file', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testInvalidReadLine' => ['description' => 'None-existing lines return on read empty log data', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testVerboseLogger' => ['description' => 'A verbose file logger automatically outputs log data', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testVerboseLog' => ['description' => 'A verbose console log outputs log data', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testTiming' => ['description' => 'The logger can perform timings for internal duration logging', 'type' => 'framework'], + 'phpOMS\tests\Log\FileLoggerTest:testLogException' => ['description' => 'A invalid log type throws a InvalidEnumValue', 'type' => 'framework'], + + // todo: many math things!!! + + 'phpOMS\tests\Math\Numerics\Interpolation\CubicSplineInterpolationTest' => ['description' => 'Cubic spline interpolation'], + 'phpOMS\tests\Math\Numerics\Interpolation\CubicSplineInterpolationTest:testInterpolationFirstDerivative' => ['description' => 'The spline interpolation using the first derivative is correct', 'type' => 'framework'], + 'phpOMS\tests\Math\Numerics\Interpolation\CubicSplineInterpolationTest:testInterpolationSecondDerivative' => ['description' => 'The spline interpolation using the second derivative is correct', 'type' => 'framework'], + + 'phpOMS\tests\Math\Numerics\Interpolation\LagrangeInterpolationTest' => ['description' => 'Lagrange interpolation'], + 'phpOMS\tests\Math\Numerics\Interpolation\LagrangeInterpolationTest:testInterpolation' => ['description' => 'The lagrange interpolation is correct', 'type' => 'framework'], + + 'phpOMS\tests\Math\Numerics\Interpolation\LinearInterpolationTest' => ['description' => 'Lagrange interpolation'], + 'phpOMS\tests\Math\Numerics\Interpolation\LinearInterpolationTest:testInterpolation' => ['description' => 'The linear interpolation is correct', 'type' => 'framework'], + + 'phpOMS\tests\Math\Numerics\IntegrationTest' => ['description' => 'Numeric integration'], + 'phpOMS\tests\Math\Numerics\IntegrationTest:testLRect' => ['description' => 'Integration by summing up rectangle areas from the left side', 'type' => 'framework'], + 'phpOMS\tests\Math\Numerics\IntegrationTest:testRRect' => ['description' => 'Integration by summing up rectangle areas from the right side', 'type' => 'framework'], + 'phpOMS\tests\Math\Numerics\IntegrationTest:testMRect' => ['description' => 'Integration by summing up rectangle areas from the middle', 'type' => 'framework'], + 'phpOMS\tests\Math\Numerics\IntegrationTest:testTrapeze' => ['description' => 'Integration by summing up trapezoid areas', 'type' => 'framework'], + 'phpOMS\tests\Math\Numerics\IntegrationTest:testSimpson' => ['description' => 'Integration by using the simpson formula', 'type' => 'framework'], + + 'phpOMS\tests\Math\Parser\EvaluatorTest' => ['description' => 'Evaluator for simple math formulas'], + 'phpOMS\tests\Math\Parser\EvaluatorTest:testBasicEvaluation' => ['description' => 'Basic formulas using +, -, *, /, () and ^ can be avluated', 'type' => 'framework'], + 'phpOMS\tests\Math\Parser\EvaluatorTest:testInvalidEvaluation' => ['description' => 'Badly formed formulas return null as result', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest' => ['description' => 'Level level regression'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testRegression' => ['description' => 'The regression parameters are calcualated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testSlope' => ['description' => 'The slope is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testElasticity' => ['description' => 'The elasticity is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testStandardErrorOfRegressionPopulation' => ['description' => 'The standard error of the population is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testStandardErrorOfRegressionSample' => ['description' => 'The standard error of the sample is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testPredictionInterval' => ['description' => 'The prediction interval is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLevelRegressionTest:testInvalidDimension' => ['description' => 'Different dimension sizes for x and y coordinates throw a InvalidDimensionException', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest' => ['description' => 'Level log regression'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest:testRegression' => ['description' => 'The regression parameters are calcualated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest:testSlope' => ['description' => 'The slope is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest:testElasticity' => ['description' => 'The elasticity is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LevelLogRegressionTest:testInvalidDimension' => ['description' => 'Different dimension sizes for x and y coordinates throw a InvalidDimensionException', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest' => ['description' => 'Log level regression'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest:testRegression' => ['description' => 'The regression parameters are calcualated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest:testSlope' => ['description' => 'The slope is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest:testElasticity' => ['description' => 'The elasticity is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLevelRegressionTest:testInvalidDimension' => ['description' => 'Different dimension sizes for x and y coordinates throw a InvalidDimensionException', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest' => ['description' => 'Log log regression'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest:testRegression' => ['description' => 'The regression parameters are calcualated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest:testSlope' => ['description' => 'The slope is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest:testElasticity' => ['description' => 'The elasticity is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\LogLogRegressionTest:testInvalidDimension' => ['description' => 'Different dimension sizes for x and y coordinates throw a InvalidDimensionException', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\Forecast\Regression\PolynomialRegressionTest' => ['description' => 'Polynomial regression'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\PolynomialRegressionTest:testRegression' => ['description' => 'The regression parameters are calcualated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\Forecast\Regression\PolynomialRegressionTest:testInvalidDimension' => ['description' => 'Different dimension sizes for x and y coordinates throw a InvalidDimensionException', 'type' => 'framework'], + + 'phpOMS\tests\Math\Stochastic\NaiveBayesClassifierTest' => ['description' => 'Naive bayes classifier for numeric values and strings/attributes'], + 'phpOMS\tests\Math\Stochastic\NaiveBayesClassifierTest:testTextClassifier' => ['description' => 'The classification of strings/attributes is correct', 'type' => 'framework'], + 'phpOMS\tests\Math\Stochastic\NaiveBayesClassifierTest:testNumericClassifier' => ['description' => 'The classification of nimeric values is correct', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\AverageTest' => ['description' => 'Averages'], + 'phpOMS\tests\Math\Statistic\AverageTest:testAverage' => ['description' => 'The average change of a dataset is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testAngleMean' => ['description' => 'The average mean of angles is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testArithmeticMean' => ['description' => 'The arithmetic mean is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testWeightedAverage' => ['description' => 'The weighted average is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testGeometricMean' => ['description' => 'The geometic mean is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testHarmonicMean' => ['description' => 'The harmonic mean is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testMovingAverage' => ['description' => 'The moving average is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidWeightedAverageDimension' => ['description' => 'Different weight and dataset dimensions throw a InvalidDimensionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidArithmeticMeanZeroDevision' => ['description' => 'An empty dataset for the arithmetic mean throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidMovingAverageZeroDevision' => ['description' => 'An empty dataset for the moving average throws a Exception', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidHarmonicMeanZeroDevision' => ['description' => 'An empty dataset for the harmonic mean throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidGeometricMean' => ['description' => 'An empty dataset for the geometric mean throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testInvalidHarmonicMean' => ['description' => 'A dataset with a 0 element throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testMode' => ['description' => 'The mode is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\AverageTest:testMedian' => ['description' => 'The median is correctly calculated', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\CorrelationTest' => ['description' => 'Correlations'], + 'phpOMS\tests\Math\Statistic\CorrelationTest:testBravisPersonCorrelationCoefficient' => ['description' => 'The correlation coefficient (Bravis Person) is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\CorrelationTest:testAutocorrelationCoefficient' => ['description' => 'The autocorrelation coefficient is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\CorrelationTest:testPortmanteauTestBoxPierce' => ['description' => 'The portmanteau test (Box Pierce) is correct', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\CorrelationTest:testPortmanteauTestLjungBox' => ['description' => 'The portmanteau test (Ljung Box) is correct', 'type' => 'framework'], + + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest' => ['description' => 'Measure of dispersion'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testRange' => ['description' => 'The correlation coefficient (Bravis Person) is calculated correctly', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testStandardDeviation' => ['description' => 'The standard deviation is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testEmpiricalCovariance' => ['description' => 'The empirical covariance is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testVarianceSample' => ['description' => 'The sample variance is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testVariancePopulation' => ['description' => 'The population/empirical variance is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testDeviation' => ['description' => 'The mean deviations are correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testDeviationArray' => ['description' => 'The mean deviations for every dataset element is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testEmpiricalVariationCoefficient' => ['description' => 'The empirical variation coefficient is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testIQR' => ['description' => 'The interquartile range is correctly calculated', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testInvalidEmpiricalVariationCoefficient' => ['description' => 'The empirical varation coefficient with a mean of 0 throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testInvalidEmpiricalCovariance' => ['description' => 'An empty dataset in the empirical covariance throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testInvalidEmpiricalCovarianceDimension' => ['description' => 'Different dataset saces in the empirical covariance throw a InvalidDimensionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testInvalidSampleVariance' => ['description' => 'An empty dataset in the sample variance throws a ZeroDevisionException', 'type' => 'framework'], + 'phpOMS\tests\Math\Statistic\MeasureOfDispersionTest:testInvalidEmpiricalVariance' => ['description' => 'An empty dataset in the empirical/population variance throws a ZeroDevisionException', 'type' => 'framework'], + + 'phpOMS\tests\Message\HeaderTest' => ['description' => 'Header for http requests/responses'], + 'phpOMS\tests\Message\HeaderTest:testDefaults' => ['description' => 'The header has the expected default values after initialization', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testSecurityHeader' => ['description' => 'Security policy headers get correctly identified', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testDataInputOutput' => ['description' => 'Header data can be set, checked for existence and returned', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testOverwrite' => ['description' => 'Header data can be forced to get overwritten', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testInvalidOverwrite' => ['description' => 'By default header data doesn\'t get overwritten', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testRemove' => ['description' => 'Header data can be removed', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testInvalidRemove' => ['description' => 'None-existing header data cannot be removed', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testAccountInputOutput' => ['description' => 'Account data can be set and returned', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testDownloadable' => ['description' => 'Data can be defined as downloadable', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testLockInputOutput' => ['description' => 'A header can be locked', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testLockInvalidSet' => ['description' => 'A locked header cannot add new data', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testLockInvalidRemove' => ['description' => 'A locked header cannot remove data', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testHeaderGeneration' => ['description' => 'The header can generate default http headers based on status codes', 'type' => 'framework'], + 'phpOMS\tests\Message\HeaderTest:testInvalidOverwriteSecurityHeader' => ['description' => 'Security header data cannot be changed once defined', 'type' => 'framework'], + + 'phpOMS\tests\System\SystemUtilsTest' => ['description' => 'System information', 'type' => 'framework'], + 'phpOMS\tests\System\SystemUtilsTest:testRAM' => ['description' => 'Test if it is possible to get information about the available RAM and usage (on Windows)', 'type' => 'framework'], + 'phpOMS\tests\System\SystemUtilsTest:testCPUUsage' => ['description' => 'Test if it is possible to get information about the CPU usage', 'type' => 'framework'], ];