Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
container_edge_cases_test.cc File Reference

Comprehensive edge case tests for all Aleph-w containers. More...

#include <gtest/gtest.h>
#include <limits>
#include <random>
#include <vector>
#include <string>
#include <set>
#include <deque>
#include <tpl_array.H>
#include <tpl_dynArray.H>
#include <tpl_arrayQueue.H>
#include <tpl_arrayStack.H>
#include <tpl_dynDlist.H>
#include <htlist.H>
#include <tpl_odhash.H>
#include <tpl_olhash.H>
#include <tpl_dynSetTree.H>
#include <bitArray.H>
Include dependency graph for container_edge_cases_test.cc:

Go to the source code of this file.

Classes

class  DynArrayEdgeCases
 
class  ArrayQueueEdgeCases
 
class  ArrayStackEdgeCases
 
class  DynDlistEdgeCases
 
class  DynListEdgeCases
 
class  ODhashTableEdgeCases
 
class  OLhashTableEdgeCases
 
class  DynSetTreeEdgeCases
 

Functions

 TEST_F (DynArrayEdgeCases, EmptyArray_SizeIsZero)
 
 TEST_F (DynArrayEdgeCases, EmptyArray_ExistReturnsFalse)
 
 TEST_F (DynArrayEdgeCases, SingleElement_InsertAndAccess)
 
 TEST_F (DynArrayEdgeCases, SparseAccess_AutoAllocation)
 
 TEST_F (DynArrayEdgeCases, ExistChecksAllocatedBlocks)
 
 TEST_F (DynArrayEdgeCases, LargeIndex_Grows)
 
 TEST_F (DynArrayEdgeCases, CutToSize_Shrinks)
 
 TEST_F (DynArrayEdgeCases, CutToZero_EmptiesArray)
 
 TEST_F (ArrayQueueEdgeCases, EmptyQueue_IsEmpty)
 
 TEST_F (ArrayQueueEdgeCases, EmptyQueue_GetThrows)
 
 TEST_F (ArrayQueueEdgeCases, EmptyQueue_SizeZero)
 
 TEST_F (ArrayQueueEdgeCases, SingleElement_FIFO)
 
 TEST_F (ArrayQueueEdgeCases, FillToCapacity)
 
 TEST_F (ArrayQueueEdgeCases, FillAndResize)
 
 TEST_F (ArrayQueueEdgeCases, WrapAround)
 
 TEST_F (ArrayStackEdgeCases, EmptyStack_IsEmpty)
 
 TEST_F (ArrayStackEdgeCases, EmptyStack_PopThrows)
 
 TEST_F (ArrayStackEdgeCases, EmptyStack_TopThrows)
 
 TEST_F (ArrayStackEdgeCases, SingleElement_LIFO)
 
 TEST_F (ArrayStackEdgeCases, FillToCapacity)
 
 TEST_F (ArrayStackEdgeCases, FillAndResize)
 
 TEST_F (ArrayStackEdgeCases, PushPopSequence)
 
 TEST_F (DynDlistEdgeCases, EmptyList_IsEmpty)
 
 TEST_F (DynDlistEdgeCases, EmptyList_RemoveThrows)
 
 TEST_F (DynDlistEdgeCases, EmptyList_GetThrows)
 
 TEST_F (DynDlistEdgeCases, SingleElement_FirstEqualsLast)
 
 TEST_F (DynDlistEdgeCases, SingleElement_RemoveFirst)
 
 TEST_F (DynDlistEdgeCases, SingleElement_RemoveLast)
 
 TEST_F (DynDlistEdgeCases, AppendAndInsert_Order)
 
 TEST_F (DynDlistEdgeCases, IteratorOnEmpty)
 
 TEST_F (DynDlistEdgeCases, ReverseEmpty)
 
 TEST_F (DynDlistEdgeCases, ReverseSingleElement)
 
 TEST_F (DynDlistEdgeCases, ReverseMultiple)
 
 TEST_F (DynDlistEdgeCases, AppendListEmpty)
 
 TEST_F (DynDlistEdgeCases, AppendListToEmpty)
 
 TEST_F (DynListEdgeCases, EmptyList_IsEmpty)
 
 TEST_F (DynListEdgeCases, EmptyList_RemoveThrows)
 
 TEST_F (DynListEdgeCases, SingleElement_InsertAndRemove)
 
 TEST_F (DynListEdgeCases, AppendKeepsOrder)
 
 TEST_F (DynListEdgeCases, InsertReverseOrder)
 
 TEST_F (ODhashTableEdgeCases, EmptyTable_SizeIsZero)
 
 TEST_F (ODhashTableEdgeCases, EmptyTable_SearchReturnsNull)
 
 TEST_F (ODhashTableEdgeCases, EmptyTable_RemoveThrows)
 
 TEST_F (ODhashTableEdgeCases, SingleElement_InsertSearchRemove)
 
 TEST_F (ODhashTableEdgeCases, DuplicateInsert_ReturnsNull)
 
 TEST_F (ODhashTableEdgeCases, HashCollisions)
 
 TEST_F (ODhashTableEdgeCases, RemoveNonExistent)
 
 TEST_F (ODhashTableEdgeCases, ZeroAndNegativeKeys)
 
 TEST_F (OLhashTableEdgeCases, EmptyTable_SizeIsZero)
 
 TEST_F (OLhashTableEdgeCases, EmptyTable_SearchReturnsNull)
 
 TEST_F (OLhashTableEdgeCases, SingleElement_Operations)
 
 TEST_F (OLhashTableEdgeCases, LinearProbingCollisions)
 
 TEST_F (DynSetTreeEdgeCases, EmptyTree_SizeIsZero)
 
 TEST_F (DynSetTreeEdgeCases, EmptyTree_SearchReturnsNull)
 
 TEST_F (DynSetTreeEdgeCases, EmptyTree_RemoveReturnsDefault)
 
 TEST_F (DynSetTreeEdgeCases, SingleElement_Insert)
 
 TEST_F (DynSetTreeEdgeCases, SingleElement_MinMax)
 
 TEST_F (DynSetTreeEdgeCases, DuplicateInsert_ReturnsNull)
 
 TEST_F (DynSetTreeEdgeCases, SortedInsert_Ascending)
 
 TEST_F (DynSetTreeEdgeCases, SortedInsert_Descending)
 
 TEST_F (DynSetTreeEdgeCases, RemoveMin)
 
 TEST_F (DynSetTreeEdgeCases, RemoveMax)
 
 TEST_F (DynSetTreeEdgeCases, RemoveMiddle)
 
 TEST_F (DynSetTreeEdgeCases, InorderTraversal)
 
 TEST_F (DynSetTreeEdgeCases, ExtremeValues)
 
 TEST (BitArrayEdgeCases, ZeroSized_NotAllowed)
 
 TEST (BitArrayEdgeCases, SingleBit_SetAndRead)
 
 TEST (BitArrayEdgeCases, AllBitsSet)
 
 TEST (BitArrayEdgeCases, AllBitsClear)
 
 TEST (BitArrayEdgeCases, AlternatingBits)
 
 TEST (BitArrayEdgeCases, BoundaryAccess)
 
 TEST (ArrayEdgeCases, SingleElement)
 
 TEST (ArrayEdgeCases, BoundaryAccess)
 
 TEST (ContainerStress, DynSetTreeRandomOperations)
 
 TEST (ContainerStress, HashTableRandomOperations)
 
 TEST (ContainerStress, DynDlistRandomOperations)
 
 TEST (ContainerStress, ArrayQueueCycles)
 
int main (int argc, char **argv)
 

Detailed Description

Comprehensive edge case tests for all Aleph-w containers.

This file contains edge case tests covering:

  • Empty container operations
  • Single element operations
  • Boundary conditions
  • Iterator edge cases
  • Memory and capacity limits
  • Duplicate handling
  • Extreme values

Definition in file container_edge_cases_test.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

◆ TEST() [1/12]

TEST ( ArrayEdgeCases  ,
BoundaryAccess   
)

◆ TEST() [2/12]

TEST ( ArrayEdgeCases  ,
SingleElement   
)

◆ TEST() [3/12]

TEST ( BitArrayEdgeCases  ,
AllBitsClear   
)

◆ TEST() [4/12]

TEST ( BitArrayEdgeCases  ,
AllBitsSet   
)

◆ TEST() [5/12]

TEST ( BitArrayEdgeCases  ,
AlternatingBits   
)

◆ TEST() [6/12]

TEST ( BitArrayEdgeCases  ,
BoundaryAccess   
)

◆ TEST() [7/12]

TEST ( BitArrayEdgeCases  ,
SingleBit_SetAndRead   
)

◆ TEST() [8/12]

TEST ( BitArrayEdgeCases  ,
ZeroSized_NotAllowed   
)

◆ TEST() [9/12]

◆ TEST() [10/12]

◆ TEST() [11/12]

◆ TEST() [12/12]

◆ TEST_F() [1/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_GetThrows   
)

◆ TEST_F() [2/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_IsEmpty   
)

◆ TEST_F() [3/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_SizeZero   
)

◆ TEST_F() [4/65]

TEST_F ( ArrayQueueEdgeCases  ,
FillAndResize   
)

◆ TEST_F() [5/65]

TEST_F ( ArrayQueueEdgeCases  ,
FillToCapacity   
)

◆ TEST_F() [6/65]

TEST_F ( ArrayQueueEdgeCases  ,
SingleElement_FIFO   
)

◆ TEST_F() [7/65]

TEST_F ( ArrayQueueEdgeCases  ,
WrapAround   
)

◆ TEST_F() [8/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_IsEmpty   
)

◆ TEST_F() [9/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_PopThrows   
)

◆ TEST_F() [10/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_TopThrows   
)

◆ TEST_F() [11/65]

TEST_F ( ArrayStackEdgeCases  ,
FillAndResize   
)

◆ TEST_F() [12/65]

TEST_F ( ArrayStackEdgeCases  ,
FillToCapacity   
)

◆ TEST_F() [13/65]

TEST_F ( ArrayStackEdgeCases  ,
PushPopSequence   
)

◆ TEST_F() [14/65]

TEST_F ( ArrayStackEdgeCases  ,
SingleElement_LIFO   
)

◆ TEST_F() [15/65]

TEST_F ( DynArrayEdgeCases  ,
CutToSize_Shrinks   
)

◆ TEST_F() [16/65]

TEST_F ( DynArrayEdgeCases  ,
CutToZero_EmptiesArray   
)

◆ TEST_F() [17/65]

TEST_F ( DynArrayEdgeCases  ,
EmptyArray_ExistReturnsFalse   
)

◆ TEST_F() [18/65]

TEST_F ( DynArrayEdgeCases  ,
EmptyArray_SizeIsZero   
)

◆ TEST_F() [19/65]

TEST_F ( DynArrayEdgeCases  ,
ExistChecksAllocatedBlocks   
)

◆ TEST_F() [20/65]

TEST_F ( DynArrayEdgeCases  ,
LargeIndex_Grows   
)

◆ TEST_F() [21/65]

TEST_F ( DynArrayEdgeCases  ,
SingleElement_InsertAndAccess   
)

◆ TEST_F() [22/65]

TEST_F ( DynArrayEdgeCases  ,
SparseAccess_AutoAllocation   
)

◆ TEST_F() [23/65]

TEST_F ( DynDlistEdgeCases  ,
AppendAndInsert_Order   
)

◆ TEST_F() [24/65]

TEST_F ( DynDlistEdgeCases  ,
AppendListEmpty   
)

◆ TEST_F() [25/65]

TEST_F ( DynDlistEdgeCases  ,
AppendListToEmpty   
)

◆ TEST_F() [26/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_GetThrows   
)

◆ TEST_F() [27/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_IsEmpty   
)

◆ TEST_F() [28/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_RemoveThrows   
)

◆ TEST_F() [29/65]

TEST_F ( DynDlistEdgeCases  ,
IteratorOnEmpty   
)

◆ TEST_F() [30/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseEmpty   
)

◆ TEST_F() [31/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseMultiple   
)

◆ TEST_F() [32/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseSingleElement   
)

◆ TEST_F() [33/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_FirstEqualsLast   
)

◆ TEST_F() [34/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_RemoveFirst   
)

◆ TEST_F() [35/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_RemoveLast   
)

◆ TEST_F() [36/65]

TEST_F ( DynListEdgeCases  ,
AppendKeepsOrder   
)

◆ TEST_F() [37/65]

TEST_F ( DynListEdgeCases  ,
EmptyList_IsEmpty   
)

◆ TEST_F() [38/65]

TEST_F ( DynListEdgeCases  ,
EmptyList_RemoveThrows   
)

◆ TEST_F() [39/65]

TEST_F ( DynListEdgeCases  ,
InsertReverseOrder   
)

◆ TEST_F() [40/65]

TEST_F ( DynListEdgeCases  ,
SingleElement_InsertAndRemove   
)

◆ TEST_F() [41/65]

TEST_F ( DynSetTreeEdgeCases  ,
DuplicateInsert_ReturnsNull   
)

◆ TEST_F() [42/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_RemoveReturnsDefault   
)

◆ TEST_F() [43/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_SearchReturnsNull   
)

◆ TEST_F() [44/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_SizeIsZero   
)

◆ TEST_F() [45/65]

TEST_F ( DynSetTreeEdgeCases  ,
ExtremeValues   
)

◆ TEST_F() [46/65]

TEST_F ( DynSetTreeEdgeCases  ,
InorderTraversal   
)

◆ TEST_F() [47/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMax   
)

◆ TEST_F() [48/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMiddle   
)

◆ TEST_F() [49/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMin   
)

◆ TEST_F() [50/65]

TEST_F ( DynSetTreeEdgeCases  ,
SingleElement_Insert   
)

◆ TEST_F() [51/65]

TEST_F ( DynSetTreeEdgeCases  ,
SingleElement_MinMax   
)

◆ TEST_F() [52/65]

TEST_F ( DynSetTreeEdgeCases  ,
SortedInsert_Ascending   
)

◆ TEST_F() [53/65]

TEST_F ( DynSetTreeEdgeCases  ,
SortedInsert_Descending   
)

◆ TEST_F() [54/65]

TEST_F ( ODhashTableEdgeCases  ,
DuplicateInsert_ReturnsNull   
)

◆ TEST_F() [55/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_RemoveThrows   
)

◆ TEST_F() [56/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_SearchReturnsNull   
)

◆ TEST_F() [57/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_SizeIsZero   
)

◆ TEST_F() [58/65]

TEST_F ( ODhashTableEdgeCases  ,
HashCollisions   
)

◆ TEST_F() [59/65]

TEST_F ( ODhashTableEdgeCases  ,
RemoveNonExistent   
)

◆ TEST_F() [60/65]

TEST_F ( ODhashTableEdgeCases  ,
SingleElement_InsertSearchRemove   
)

◆ TEST_F() [61/65]

TEST_F ( ODhashTableEdgeCases  ,
ZeroAndNegativeKeys   
)

◆ TEST_F() [62/65]

TEST_F ( OLhashTableEdgeCases  ,
EmptyTable_SearchReturnsNull   
)

◆ TEST_F() [63/65]

TEST_F ( OLhashTableEdgeCases  ,
EmptyTable_SizeIsZero   
)

◆ TEST_F() [64/65]

TEST_F ( OLhashTableEdgeCases  ,
LinearProbingCollisions   
)

◆ TEST_F() [65/65]

TEST_F ( OLhashTableEdgeCases  ,
SingleElement_Operations   
)