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

Exhaustive tests for Dlink class. More...

#include <gtest/gtest.h>
#include <vector>
#include <algorithm>
#include <random>
#include <dlink.H>
Include dependency graph for dlink_test.cc:

Go to the source code of this file.

Classes

class  DlinkBasicTest
 
class  DlinkStackTest
 
class  DlinkInsertAppendTest
 
class  DlinkSwapTest
 
class  DlinkListOperationsTest
 
class  DlinkReverseTest
 
class  DlinkRotationTest
 
class  DlinkIteratorTest
 

Functions

 TEST_F (DlinkBasicTest, DefaultConstructorCreatesEmptyList)
 
 TEST_F (DlinkBasicTest, CopyConstructorOfEmptyList)
 
 TEST_F (DlinkBasicTest, MoveConstructorOfEmptyList)
 
 TEST_F (DlinkBasicTest, ResetClearsNode)
 
 TEST_F (DlinkBasicTest, InitIsAliasForReset)
 
 TEST_F (DlinkStackTest, TopOnEmptyStackThrowsCorrectMessage)
 
 TEST_F (DlinkStackTest, PopOnEmptyStackThrowsCorrectMessage)
 
 TEST_F (DlinkStackTest, PushAndPopSequence)
 
 TEST_F (DlinkStackTest, AlternatingPushPop)
 
 TEST_F (DlinkInsertAppendTest, InsertOnEmptyList)
 
 TEST_F (DlinkInsertAppendTest, AppendOnEmptyList)
 
 TEST_F (DlinkInsertAppendTest, InsertMaintainsOrder)
 
 TEST_F (DlinkInsertAppendTest, AppendMaintainsOrder)
 
 TEST_F (DlinkInsertAppendTest, MixedInsertAndAppend)
 
 TEST_F (DlinkSwapTest, SwapBetweenEmptyLists)
 
 TEST_F (DlinkSwapTest, SwapEmptyWithNonEmpty)
 
 TEST_F (DlinkSwapTest, SwapNonEmptyWithEmpty)
 
 TEST_F (DlinkSwapTest, SwapBetweenNonEmptyLists)
 
 TEST_F (DlinkSwapTest, SwapWithReferenceOverload)
 
 TEST_F (DlinkListOperationsTest, ConcatListEmptyToEmpty)
 
 TEST_F (DlinkListOperationsTest, ConcatListNonEmptyToEmpty)
 
 TEST_F (DlinkListOperationsTest, ConcatListEmptyToNonEmpty)
 
 TEST_F (DlinkListOperationsTest, ConcatListBothNonEmpty)
 
 TEST_F (DlinkListOperationsTest, InsertListEmpty)
 
 TEST_F (DlinkListOperationsTest, InsertListInMiddle)
 
 TEST_F (DlinkListOperationsTest, AppendListEmpty)
 
 TEST_F (DlinkListOperationsTest, SplitEmptyList)
 
 TEST_F (DlinkListOperationsTest, SplitUnitaryList)
 
 TEST_F (DlinkListOperationsTest, SplitEvenList)
 
 TEST_F (DlinkListOperationsTest, SplitOddList)
 
 TEST_F (DlinkListOperationsTest, CutListAtFirst)
 
 TEST_F (DlinkListOperationsTest, CutListAtLast)
 
 TEST_F (DlinkListOperationsTest, CutListInMiddle)
 
 TEST_F (DlinkReverseTest, ReverseEmptyList)
 
 TEST_F (DlinkReverseTest, ReverseUnitaryList)
 
 TEST_F (DlinkReverseTest, ReverseTwoElements)
 
 TEST_F (DlinkReverseTest, ReverseMultipleElements)
 
 TEST_F (DlinkReverseTest, DoubleReverseRestoresOrder)
 
 TEST_F (DlinkRotationTest, RotateLeftZero)
 
 TEST_F (DlinkRotationTest, RotateLeftOne)
 
 TEST_F (DlinkRotationTest, RotateLeftFullCycle)
 
 TEST_F (DlinkRotationTest, RotateRightOne)
 
 TEST_F (DlinkRotationTest, RotateEmptyListThrows)
 
 TEST_F (DlinkIteratorTest, IteratorOnEmptyList)
 
 TEST_F (DlinkIteratorTest, IteratorForwardTraversal)
 
 TEST_F (DlinkIteratorTest, IteratorBackwardTraversal)
 
 TEST_F (DlinkIteratorTest, IteratorDeleteAllElements)
 
 TEST_F (DlinkIteratorTest, IteratorDeleteMiddleElement)
 
 TEST_F (DlinkIteratorTest, IteratorIsFirstAndIsLast)
 
 TEST_F (DlinkIteratorTest, IteratorEqualityOperators)
 
 TEST (DlinkConsistency, CheckEmptyList)
 
 TEST (DlinkConsistency, CheckAfterOperations)
 
 TEST (DlinkStress, LargeListOperations)
 
 TEST (DlinkStress, RandomOperations)
 
 TEST (DlinkMoveSemantics, MoveConstructor)
 
 TEST (DlinkMoveSemantics, MoveAssignment)
 
 TEST (DlinkEdgeCases, SelfSwap)
 
 TEST (DlinkEdgeCases, RemoveOnlyElement)
 
 TEST (DlinkEdgeCases, IteratorOnUnitaryList)
 
 TEST (DlinkStress, MassiveListOperations)
 
 TEST (DlinkStress, RepeatedSplitConcat)
 
 TEST (DlinkFuzz, RandomInsertRemoveOperations)
 
 TEST (DlinkStress, RotationStress)
 
 TEST (DlinkStress, IteratorDeletionUnderStress)
 

Detailed Description

Exhaustive tests for Dlink class.

These tests cover all operations of Dlink including edge cases and the bug fixes made to the class.

Definition in file dlink_test.cc.

Function Documentation

◆ TEST() [1/14]

TEST ( DlinkConsistency  ,
CheckAfterOperations   
)

◆ TEST() [2/14]

TEST ( DlinkConsistency  ,
CheckEmptyList   
)

Definition at line 805 of file dlink_test.cc.

References Aleph::Dlink::check(), and Aleph::maps().

◆ TEST() [3/14]

◆ TEST() [4/14]

TEST ( DlinkEdgeCases  ,
RemoveOnlyElement   
)

◆ TEST() [5/14]

TEST ( DlinkEdgeCases  ,
SelfSwap   
)

◆ TEST() [6/14]

◆ TEST() [7/14]

TEST ( DlinkMoveSemantics  ,
MoveAssignment   
)

◆ TEST() [8/14]

TEST ( DlinkMoveSemantics  ,
MoveConstructor   
)

◆ TEST() [9/14]

◆ TEST() [10/14]

◆ TEST() [11/14]

◆ TEST() [12/14]

◆ TEST() [13/14]

◆ TEST() [14/14]

TEST ( DlinkStress  ,
RotationStress   
)

◆ TEST_F() [1/50]

TEST_F ( DlinkBasicTest  ,
CopyConstructorOfEmptyList   
)

Definition at line 70 of file dlink_test.cc.

References Aleph::copy(), and Aleph::maps().

◆ TEST_F() [2/50]

TEST_F ( DlinkBasicTest  ,
DefaultConstructorCreatesEmptyList   
)

Definition at line 61 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [3/50]

TEST_F ( DlinkBasicTest  ,
InitIsAliasForReset   
)

◆ TEST_F() [4/50]

TEST_F ( DlinkBasicTest  ,
MoveConstructorOfEmptyList   
)

Definition at line 78 of file dlink_test.cc.

References Aleph::HTList::is_empty(), and Aleph::maps().

◆ TEST_F() [5/50]

TEST_F ( DlinkBasicTest  ,
ResetClearsNode   
)

◆ TEST_F() [6/50]

TEST_F ( DlinkInsertAppendTest  ,
AppendMaintainsOrder   
)

◆ TEST_F() [7/50]

TEST_F ( DlinkInsertAppendTest  ,
AppendOnEmptyList   
)

Definition at line 217 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [8/50]

TEST_F ( DlinkInsertAppendTest  ,
InsertMaintainsOrder   
)

◆ TEST_F() [9/50]

TEST_F ( DlinkInsertAppendTest  ,
InsertOnEmptyList   
)

Definition at line 208 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [10/50]

TEST_F ( DlinkInsertAppendTest  ,
MixedInsertAndAppend   
)

◆ TEST_F() [11/50]

◆ TEST_F() [12/50]

TEST_F ( DlinkIteratorTest  ,
IteratorDeleteAllElements   
)

◆ TEST_F() [13/50]

◆ TEST_F() [14/50]

TEST_F ( DlinkIteratorTest  ,
IteratorEqualityOperators   
)

Definition at line 785 of file dlink_test.cc.

References Aleph::maps(), Aleph::Dlink::Iterator::next(), and nodes.

◆ TEST_F() [15/50]

TEST_F ( DlinkIteratorTest  ,
IteratorForwardTraversal   
)

◆ TEST_F() [16/50]

TEST_F ( DlinkIteratorTest  ,
IteratorIsFirstAndIsLast   
)

◆ TEST_F() [17/50]

◆ TEST_F() [18/50]

TEST_F ( DlinkListOperationsTest  ,
AppendListEmpty   
)

Definition at line 446 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [19/50]

TEST_F ( DlinkListOperationsTest  ,
ConcatListBothNonEmpty   
)

◆ TEST_F() [20/50]

TEST_F ( DlinkListOperationsTest  ,
ConcatListEmptyToEmpty   
)

Definition at line 363 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [21/50]

TEST_F ( DlinkListOperationsTest  ,
ConcatListEmptyToNonEmpty   
)

Definition at line 382 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [22/50]

TEST_F ( DlinkListOperationsTest  ,
ConcatListNonEmptyToEmpty   
)

Definition at line 370 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [23/50]

TEST_F ( DlinkListOperationsTest  ,
CutListAtFirst   
)

◆ TEST_F() [24/50]

TEST_F ( DlinkListOperationsTest  ,
CutListAtLast   
)

◆ TEST_F() [25/50]

TEST_F ( DlinkListOperationsTest  ,
CutListInMiddle   
)

◆ TEST_F() [26/50]

TEST_F ( DlinkListOperationsTest  ,
InsertListEmpty   
)

Definition at line 411 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [27/50]

TEST_F ( DlinkListOperationsTest  ,
InsertListInMiddle   
)

◆ TEST_F() [28/50]

◆ TEST_F() [29/50]

◆ TEST_F() [30/50]

TEST_F ( DlinkListOperationsTest  ,
SplitOddList   
)

Definition at line 493 of file dlink_test.cc.

References Aleph::count(), l, Aleph::maps(), and Aleph::HTList::split_list().

◆ TEST_F() [31/50]

◆ TEST_F() [32/50]

TEST_F ( DlinkReverseTest  ,
DoubleReverseRestoresOrder   
)

◆ TEST_F() [33/50]

TEST_F ( DlinkReverseTest  ,
ReverseEmptyList   
)

Definition at line 556 of file dlink_test.cc.

References Aleph::count(), and Aleph::maps().

◆ TEST_F() [34/50]

TEST_F ( DlinkReverseTest  ,
ReverseMultipleElements   
)

◆ TEST_F() [35/50]

TEST_F ( DlinkReverseTest  ,
ReverseTwoElements   
)

Definition at line 571 of file dlink_test.cc.

References Aleph::maps(), and nodes.

◆ TEST_F() [36/50]

TEST_F ( DlinkReverseTest  ,
ReverseUnitaryList   
)

Definition at line 563 of file dlink_test.cc.

References Aleph::count(), Aleph::maps(), and nodes.

◆ TEST_F() [37/50]

TEST_F ( DlinkRotationTest  ,
RotateEmptyListThrows   
)

◆ TEST_F() [38/50]

TEST_F ( DlinkRotationTest  ,
RotateLeftFullCycle   
)

◆ TEST_F() [39/50]

TEST_F ( DlinkRotationTest  ,
RotateLeftOne   
)

◆ TEST_F() [40/50]

TEST_F ( DlinkRotationTest  ,
RotateLeftZero   
)

◆ TEST_F() [41/50]

TEST_F ( DlinkRotationTest  ,
RotateRightOne   
)

◆ TEST_F() [42/50]

TEST_F ( DlinkStackTest  ,
AlternatingPushPop   
)

Definition at line 176 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [43/50]

TEST_F ( DlinkStackTest  ,
PopOnEmptyStackThrowsCorrectMessage   
)

Definition at line 133 of file dlink_test.cc.

References FAIL, and Aleph::maps().

◆ TEST_F() [44/50]

TEST_F ( DlinkStackTest  ,
PushAndPopSequence   
)

Definition at line 152 of file dlink_test.cc.

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

◆ TEST_F() [45/50]

TEST_F ( DlinkStackTest  ,
TopOnEmptyStackThrowsCorrectMessage   
)

Definition at line 114 of file dlink_test.cc.

References FAIL, and Aleph::maps().

◆ TEST_F() [46/50]

TEST_F ( DlinkSwapTest  ,
SwapBetweenEmptyLists   
)

Definition at line 278 of file dlink_test.cc.

References Aleph::maps(), and Aleph::Dlink::swap().

◆ TEST_F() [47/50]

TEST_F ( DlinkSwapTest  ,
SwapBetweenNonEmptyLists   
)

Definition at line 312 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [48/50]

TEST_F ( DlinkSwapTest  ,
SwapEmptyWithNonEmpty   
)

Definition at line 285 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [49/50]

TEST_F ( DlinkSwapTest  ,
SwapNonEmptyWithEmpty   
)

Definition at line 299 of file dlink_test.cc.

References Aleph::maps().

◆ TEST_F() [50/50]

TEST_F ( DlinkSwapTest  ,
SwapWithReferenceOverload   
)

Definition at line 330 of file dlink_test.cc.

References Aleph::maps().