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 
)

Definition at line 977 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST() [1/12]

TEST ( ArrayEdgeCases  ,
BoundaryAccess   
)

Definition at line 796 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST() [2/12]

TEST ( ArrayEdgeCases  ,
SingleElement   
)

Definition at line 788 of file container_edge_cases_test.cc.

References Aleph::maps(), and Aleph::Array< T >::size().

◆ TEST() [3/12]

TEST ( BitArrayEdgeCases  ,
AllBitsClear   
)

Definition at line 746 of file container_edge_cases_test.cc.

References Aleph::maps(), and Aleph::BitArray::read_bit().

◆ 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   
)

Definition at line 717 of file container_edge_cases_test.cc.

References Aleph::maps(), and Aleph::BitArray::size().

◆ TEST() [9/12]

◆ TEST() [10/12]

◆ TEST() [11/12]

◆ TEST() [12/12]

◆ TEST_F() [1/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_GetThrows   
)

Definition at line 163 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [2/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_IsEmpty   
)

Definition at line 157 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [3/65]

TEST_F ( ArrayQueueEdgeCases  ,
EmptyQueue_SizeZero   
)

Definition at line 168 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [4/65]

TEST_F ( ArrayQueueEdgeCases  ,
FillAndResize   
)

Definition at line 199 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [5/65]

TEST_F ( ArrayQueueEdgeCases  ,
FillToCapacity   
)

Definition at line 189 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [6/65]

TEST_F ( ArrayQueueEdgeCases  ,
SingleElement_FIFO   
)

Definition at line 178 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [7/65]

TEST_F ( ArrayQueueEdgeCases  ,
WrapAround   
)

Definition at line 211 of file container_edge_cases_test.cc.

References Aleph::maps(), and Aleph::DynList< T >::put().

◆ TEST_F() [8/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_IsEmpty   
)

Definition at line 238 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [9/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_PopThrows   
)

Definition at line 244 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [10/65]

TEST_F ( ArrayStackEdgeCases  ,
EmptyStack_TopThrows   
)

Definition at line 249 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [11/65]

TEST_F ( ArrayStackEdgeCases  ,
FillAndResize   
)

Definition at line 273 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [12/65]

TEST_F ( ArrayStackEdgeCases  ,
FillToCapacity   
)

Definition at line 264 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [13/65]

TEST_F ( ArrayStackEdgeCases  ,
PushPopSequence   
)

Definition at line 285 of file container_edge_cases_test.cc.

References Aleph::maps(), and Aleph::DynList< T >::push().

◆ TEST_F() [14/65]

TEST_F ( ArrayStackEdgeCases  ,
SingleElement_LIFO   
)

Definition at line 254 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [15/65]

TEST_F ( DynArrayEdgeCases  ,
CutToSize_Shrinks   
)

Definition at line 127 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [16/65]

TEST_F ( DynArrayEdgeCases  ,
CutToZero_EmptiesArray   
)

Definition at line 139 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [17/65]

TEST_F ( DynArrayEdgeCases  ,
EmptyArray_ExistReturnsFalse   
)

Definition at line 86 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [18/65]

TEST_F ( DynArrayEdgeCases  ,
EmptyArray_SizeIsZero   
)

Definition at line 80 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [19/65]

TEST_F ( DynArrayEdgeCases  ,
ExistChecksAllocatedBlocks   
)

Definition at line 112 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [20/65]

TEST_F ( DynArrayEdgeCases  ,
LargeIndex_Grows   
)

Definition at line 120 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [21/65]

TEST_F ( DynArrayEdgeCases  ,
SingleElement_InsertAndAccess   
)

Definition at line 93 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [22/65]

TEST_F ( DynArrayEdgeCases  ,
SparseAccess_AutoAllocation   
)

Definition at line 101 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [23/65]

TEST_F ( DynDlistEdgeCases  ,
AppendAndInsert_Order   
)

Definition at line 346 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [24/65]

TEST_F ( DynDlistEdgeCases  ,
AppendListEmpty   
)

Definition at line 387 of file container_edge_cases_test.cc.

References Aleph::DynList< T >::append(), and Aleph::maps().

◆ TEST_F() [25/65]

TEST_F ( DynDlistEdgeCases  ,
AppendListToEmpty   
)

◆ TEST_F() [26/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_GetThrows   
)

Definition at line 318 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [27/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_IsEmpty   
)

Definition at line 306 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [28/65]

TEST_F ( DynDlistEdgeCases  ,
EmptyList_RemoveThrows   
)

Definition at line 312 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [29/65]

TEST_F ( DynDlistEdgeCases  ,
IteratorOnEmpty   
)

Definition at line 356 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [30/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseEmpty   
)

Definition at line 362 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [31/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseMultiple   
)

Definition at line 376 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [32/65]

TEST_F ( DynDlistEdgeCases  ,
ReverseSingleElement   
)

Definition at line 368 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [33/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_FirstEqualsLast   
)

Definition at line 324 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [34/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_RemoveFirst   
)

Definition at line 332 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [35/65]

TEST_F ( DynDlistEdgeCases  ,
SingleElement_RemoveLast   
)

Definition at line 339 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [36/65]

TEST_F ( DynListEdgeCases  ,
AppendKeepsOrder   
)

Definition at line 436 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [37/65]

TEST_F ( DynListEdgeCases  ,
EmptyList_IsEmpty   
)

Definition at line 416 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [38/65]

TEST_F ( DynListEdgeCases  ,
EmptyList_RemoveThrows   
)

Definition at line 422 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [39/65]

TEST_F ( DynListEdgeCases  ,
InsertReverseOrder   
)

Definition at line 447 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [40/65]

TEST_F ( DynListEdgeCases  ,
SingleElement_InsertAndRemove   
)

Definition at line 427 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [41/65]

TEST_F ( DynSetTreeEdgeCases  ,
DuplicateInsert_ReturnsNull   
)

Definition at line 633 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [42/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_RemoveReturnsDefault   
)

Definition at line 612 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [43/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_SearchReturnsNull   
)

Definition at line 605 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [44/65]

TEST_F ( DynSetTreeEdgeCases  ,
EmptyTree_SizeIsZero   
)

Definition at line 599 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [45/65]

TEST_F ( DynSetTreeEdgeCases  ,
ExtremeValues   
)

Definition at line 703 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [46/65]

TEST_F ( DynSetTreeEdgeCases  ,
InorderTraversal   
)

Definition at line 691 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [47/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMax   
)

Definition at line 671 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [48/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMiddle   
)

Definition at line 681 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [49/65]

TEST_F ( DynSetTreeEdgeCases  ,
RemoveMin   
)

Definition at line 661 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [50/65]

TEST_F ( DynSetTreeEdgeCases  ,
SingleElement_Insert   
)

Definition at line 617 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [51/65]

TEST_F ( DynSetTreeEdgeCases  ,
SingleElement_MinMax   
)

Definition at line 626 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [52/65]

TEST_F ( DynSetTreeEdgeCases  ,
SortedInsert_Ascending   
)

Definition at line 641 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [53/65]

TEST_F ( DynSetTreeEdgeCases  ,
SortedInsert_Descending   
)

Definition at line 651 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [54/65]

TEST_F ( ODhashTableEdgeCases  ,
DuplicateInsert_ReturnsNull   
)

Definition at line 500 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [55/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_RemoveThrows   
)

Definition at line 481 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [56/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_SearchReturnsNull   
)

Definition at line 474 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [57/65]

TEST_F ( ODhashTableEdgeCases  ,
EmptyTable_SizeIsZero   
)

Definition at line 468 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [58/65]

TEST_F ( ODhashTableEdgeCases  ,
HashCollisions   
)

Definition at line 508 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [59/65]

TEST_F ( ODhashTableEdgeCases  ,
RemoveNonExistent   
)

Definition at line 524 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [60/65]

TEST_F ( ODhashTableEdgeCases  ,
SingleElement_InsertSearchRemove   
)

Definition at line 486 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [61/65]

TEST_F ( ODhashTableEdgeCases  ,
ZeroAndNegativeKeys   
)

Definition at line 533 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [62/65]

TEST_F ( OLhashTableEdgeCases  ,
EmptyTable_SearchReturnsNull   
)

Definition at line 560 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [63/65]

TEST_F ( OLhashTableEdgeCases  ,
EmptyTable_SizeIsZero   
)

Definition at line 554 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [64/65]

TEST_F ( OLhashTableEdgeCases  ,
LinearProbingCollisions   
)

Definition at line 576 of file container_edge_cases_test.cc.

References Aleph::maps().

◆ TEST_F() [65/65]

TEST_F ( OLhashTableEdgeCases  ,
SingleElement_Operations   
)

Definition at line 565 of file container_edge_cases_test.cc.

References Aleph::maps().