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

Comprehensive tests for ah-parallel.H parallel functional operations. More...

#include <gtest/gtest.h>
#include <cstdlib>
#include <ah-parallel.H>
#include <vector>
#include <list>
#include <deque>
#include <array>
#include <string>
#include <numeric>
#include <atomic>
#include <chrono>
#include <random>
#include <algorithm>
#include <cmath>
Include dependency graph for ah_parallel_test.cc:

Go to the source code of this file.

Classes

class  ParallelTest
 

Functions

 TEST_F (ParallelTest, PmapsSquare)
 
 TEST_F (ParallelTest, PmapsTypeConversion)
 
 TEST_F (ParallelTest, PmapsToString)
 
 TEST_F (ParallelTest, PmapsEmpty)
 
 TEST_F (ParallelTest, PmapsSingle)
 
 TEST_F (ParallelTest, PmapsLargeData)
 
 TEST_F (ParallelTest, PmapsWithList)
 
 TEST_F (ParallelTest, PmapsPreservesOrder)
 
 TEST_F (ParallelTest, PmapsAcceptsParallelOptions)
 
 TEST_F (ParallelTest, PfilterEvens)
 
 TEST_F (ParallelTest, PfilterOdds)
 
 TEST_F (ParallelTest, PfilterNone)
 
 TEST_F (ParallelTest, PfilterAll)
 
 TEST_F (ParallelTest, PfilterEmpty)
 
 TEST_F (ParallelTest, PfilterPreservesOrder)
 
 TEST_F (ParallelTest, PfilterLargeData)
 
 TEST_F (ParallelTest, ParallelAlgorithmsHonorCancellation)
 
 TEST_F (ParallelTest, PfoldlSum)
 
 TEST_F (ParallelTest, PfoldlProduct)
 
 TEST_F (ParallelTest, PfoldlMax)
 
 TEST_F (ParallelTest, PfoldlEmpty)
 
 TEST_F (ParallelTest, PfoldlLargeData)
 
 TEST_F (ParallelTest, PforEachModify)
 
 TEST_F (ParallelTest, PforEachAtomic)
 
 TEST_F (ParallelTest, PforEachEmpty)
 
 TEST_F (ParallelTest, PforEachAcceptsDefaultPoolThroughOptions)
 
 TEST_F (ParallelTest, PallTrue)
 
 TEST_F (ParallelTest, PallFalse)
 
 TEST_F (ParallelTest, PallEmpty)
 
 TEST_F (ParallelTest, PexistsTrue)
 
 TEST_F (ParallelTest, PexistsFalse)
 
 TEST_F (ParallelTest, PexistsEmpty)
 
 TEST_F (ParallelTest, PnoneTrue)
 
 TEST_F (ParallelTest, PnoneFalse)
 
 TEST_F (ParallelTest, PcountIfEvens)
 
 TEST_F (ParallelTest, PcountIfDivisibleByHundred)
 
 TEST_F (ParallelTest, PcountIfAll)
 
 TEST_F (ParallelTest, PcountIfNone)
 
 TEST_F (ParallelTest, PcountIfLargeData)
 
 TEST_F (ParallelTest, PfindFound)
 
 TEST_F (ParallelTest, PfindNotFound)
 
 TEST_F (ParallelTest, PfindFirst)
 
 TEST_F (ParallelTest, PfindEmpty)
 
 TEST_F (ParallelTest, PfindAcceptsParallelOptions)
 
 TEST_F (ParallelTest, PfindValueFound)
 
 TEST_F (ParallelTest, Psum)
 
 TEST_F (ParallelTest, PsumWithInit)
 
 TEST_F (ParallelTest, PsumEmpty)
 
 TEST_F (ParallelTest, PsumLargeData)
 
 TEST_F (ParallelTest, Pproduct)
 
 TEST_F (ParallelTest, PproductEmpty)
 
 TEST_F (ParallelTest, Pmin)
 
 TEST_F (ParallelTest, Pmax)
 
 TEST_F (ParallelTest, PminEmpty)
 
 TEST_F (ParallelTest, PmaxEmpty)
 
 TEST_F (ParallelTest, Pminmax)
 
 TEST_F (ParallelTest, PminmaxShuffle)
 
 TEST_F (ParallelTest, PminmaxLargeData)
 
 TEST_F (ParallelTest, PsortBasic)
 
 TEST_F (ParallelTest, PsortDescending)
 
 TEST_F (ParallelTest, PsortEmpty)
 
 TEST_F (ParallelTest, PsortSingle)
 
 TEST_F (ParallelTest, PsortAlreadySorted)
 
 TEST_F (ParallelTest, PsortLargeData)
 
 TEST_F (ParallelTest, PsortAcceptsParallelOptions)
 
 TEST_F (ParallelTest, PsortHonorsCancellation)
 
 TEST_F (ParallelTest, PzipForEachBasic)
 
 TEST_F (ParallelTest, PzipForEachDifferentLengths)
 
 TEST_F (ParallelTest, PzipForEachEmpty)
 
 TEST_F (ParallelTest, PzipMapsBasic)
 
 TEST_F (ParallelTest, PzipMapsTypeConversion)
 
 TEST_F (ParallelTest, ZipAlgorithmsAcceptParallelOptions)
 
 TEST_F (ParallelTest, PpartitionBasic)
 
 TEST_F (ParallelTest, PpartitionAllTrue)
 
 TEST_F (ParallelTest, PpartitionAllFalse)
 
 TEST_F (ParallelTest, PpartitionEmpty)
 
 TEST_F (ParallelTest, PpartitionPreservesOrder)
 
 TEST_F (ParallelTest, PpartitionAcceptsParallelOptions)
 
 TEST_F (ParallelTest, PpartitionSupportsNonDefaultConstructibleValues)
 
 TEST_F (ParallelTest, PpartitionHonorsCancellation)
 
 TEST_F (ParallelTest, PfilterSupportsNonDefaultConstructibleValues)
 
 TEST_F (ParallelTest, PscanContainerWrapperMatchesPartialSum)
 
 TEST_F (ParallelTest, PexclusiveScanContainerWrapperWorks)
 
 TEST_F (ParallelTest, ScanAndMergeAcceptParallelOptions)
 
 TEST_F (ParallelTest, ScanAndMergeHonorCancellation)
 
 TEST_F (ParallelTest, ScanAndMergeSupportNonDefaultConstructibleValues)
 
 TEST_F (ParallelTest, CorrectnessMapVsSequential)
 
 TEST_F (ParallelTest, CorrectnessFilterVsSequential)
 
 TEST_F (ParallelTest, CorrectnessFoldVsSequential)
 
 TEST_F (ParallelTest, BenchmarkMapSpeedup)
 
 TEST_F (ParallelTest, BenchmarkFilterSpeedup)
 
 TEST_F (ParallelTest, BenchmarkSortSpeedup)
 
 TEST_F (ParallelTest, ThreadSafetyConcurrentOperations)
 
 TEST_F (ParallelTest, EdgeCaseSingleThread)
 
 TEST_F (ParallelTest, EdgeCaseManyThreads)
 
 TEST_F (ParallelTest, EdgeCaseVeryLargeData)
 
 TEST_F (ParallelTest, PzipForEachN3Containers)
 
 TEST_F (ParallelTest, PzipForEachN4Containers)
 
 TEST_F (ParallelTest, PzipForEachNDifferentLengths)
 
 TEST_F (ParallelTest, PzipMapsN3Containers)
 
 TEST_F (ParallelTest, PzipMapsNEmpty)
 
 TEST_F (ParallelTest, PzipFoldlNVariadic)
 
 TEST_F (ParallelTest, PzipAllN3ContainersTrue)
 
 TEST_F (ParallelTest, PzipAllN3ContainersFalse)
 
 TEST_F (ParallelTest, PzipExistsNTrue)
 
 TEST_F (ParallelTest, PzipExistsNFalse)
 
 TEST_F (ParallelTest, PzipCountIfN)
 
 TEST_F (ParallelTest, PzipCountIfNPartial)
 
 TEST_F (ParallelTest, VariadicZipAlgorithmsAcceptParallelOptions)
 
 TEST_F (ParallelTest, PenumerateForEachModify)
 
 TEST_F (ParallelTest, PenumerateForEachConst)
 
 TEST_F (ParallelTest, PenumerateMaps)
 
 TEST_F (ParallelTest, PenumerateMapsEmpty)
 
 TEST_F (ParallelTest, PenumerateAcceptsParallelOptions)
 
 TEST_F (ParallelTest, ZipAndEnumerateHonorCancellation)
 
 TEST_F (ParallelTest, PzipForEachNLargeData)
 
 TEST_F (ParallelTest, PzipMapsNLargeData)
 
 TEST_F (ParallelTest, CorrectnessZipNVsSequential)
 
int main (int argc, char **argv)
 

Detailed Description

Comprehensive tests for ah-parallel.H parallel functional operations.

Definition in file ah_parallel_test.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1504 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [1/118]

TEST_F ( ParallelTest  ,
BenchmarkFilterSpeedup   
)

◆ TEST_F() [2/118]

TEST_F ( ParallelTest  ,
BenchmarkMapSpeedup   
)

◆ TEST_F() [3/118]

TEST_F ( ParallelTest  ,
BenchmarkSortSpeedup   
)

◆ TEST_F() [4/118]

TEST_F ( ParallelTest  ,
CorrectnessFilterVsSequential   
)

◆ TEST_F() [5/118]

TEST_F ( ParallelTest  ,
CorrectnessFoldVsSequential   
)

◆ TEST_F() [6/118]

TEST_F ( ParallelTest  ,
CorrectnessMapVsSequential   
)

◆ TEST_F() [7/118]

TEST_F ( ParallelTest  ,
CorrectnessZipNVsSequential   
)

◆ TEST_F() [8/118]

TEST_F ( ParallelTest  ,
EdgeCaseManyThreads   
)

◆ TEST_F() [9/118]

TEST_F ( ParallelTest  ,
EdgeCaseSingleThread   
)

◆ TEST_F() [10/118]

TEST_F ( ParallelTest  ,
EdgeCaseVeryLargeData   
)

Definition at line 1153 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), LL, and Aleph::sum().

◆ TEST_F() [11/118]

TEST_F ( ParallelTest  ,
PallEmpty   
)

Definition at line 309 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pall().

◆ TEST_F() [12/118]

TEST_F ( ParallelTest  ,
PallFalse   
)

Definition at line 303 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pall().

◆ TEST_F() [13/118]

TEST_F ( ParallelTest  ,
PallTrue   
)

Definition at line 297 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pall().

◆ TEST_F() [14/118]

◆ TEST_F() [15/118]

TEST_F ( ParallelTest  ,
PcountIfAll   
)

◆ TEST_F() [16/118]

TEST_F ( ParallelTest  ,
PcountIfDivisibleByHundred   
)

◆ TEST_F() [17/118]

TEST_F ( ParallelTest  ,
PcountIfEvens   
)

◆ TEST_F() [18/118]

TEST_F ( ParallelTest  ,
PcountIfLargeData   
)

◆ TEST_F() [19/118]

TEST_F ( ParallelTest  ,
PcountIfNone   
)

◆ TEST_F() [20/118]

TEST_F ( ParallelTest  ,
PenumerateAcceptsParallelOptions   
)

◆ TEST_F() [21/118]

TEST_F ( ParallelTest  ,
PenumerateForEachConst   
)

◆ TEST_F() [22/118]

TEST_F ( ParallelTest  ,
PenumerateForEachModify   
)

◆ TEST_F() [23/118]

TEST_F ( ParallelTest  ,
PenumerateMaps   
)

◆ TEST_F() [24/118]

TEST_F ( ParallelTest  ,
PenumerateMapsEmpty   
)

◆ TEST_F() [25/118]

TEST_F ( ParallelTest  ,
PexclusiveScanContainerWrapperWorks   
)

◆ TEST_F() [26/118]

TEST_F ( ParallelTest  ,
PexistsEmpty   
)

◆ TEST_F() [27/118]

TEST_F ( ParallelTest  ,
PexistsFalse   
)

◆ TEST_F() [28/118]

TEST_F ( ParallelTest  ,
PexistsTrue   
)

◆ TEST_F() [29/118]

TEST_F ( ParallelTest  ,
PfilterAll   
)

◆ TEST_F() [30/118]

TEST_F ( ParallelTest  ,
PfilterEmpty   
)

◆ TEST_F() [31/118]

TEST_F ( ParallelTest  ,
PfilterEvens   
)

◆ TEST_F() [32/118]

TEST_F ( ParallelTest  ,
PfilterLargeData   
)

◆ TEST_F() [33/118]

TEST_F ( ParallelTest  ,
PfilterNone   
)

◆ TEST_F() [34/118]

TEST_F ( ParallelTest  ,
PfilterOdds   
)

◆ TEST_F() [35/118]

TEST_F ( ParallelTest  ,
PfilterPreservesOrder   
)

◆ TEST_F() [36/118]

TEST_F ( ParallelTest  ,
PfilterSupportsNonDefaultConstructibleValues   
)

◆ TEST_F() [37/118]

TEST_F ( ParallelTest  ,
PfindAcceptsParallelOptions   
)

◆ TEST_F() [38/118]

TEST_F ( ParallelTest  ,
PfindEmpty   
)

◆ TEST_F() [39/118]

TEST_F ( ParallelTest  ,
PfindFirst   
)

◆ TEST_F() [40/118]

TEST_F ( ParallelTest  ,
PfindFound   
)

◆ TEST_F() [41/118]

TEST_F ( ParallelTest  ,
PfindNotFound   
)

◆ TEST_F() [42/118]

TEST_F ( ParallelTest  ,
PfindValueFound   
)

◆ TEST_F() [43/118]

TEST_F ( ParallelTest  ,
PfoldlEmpty   
)

◆ TEST_F() [44/118]

TEST_F ( ParallelTest  ,
PfoldlLargeData   
)

◆ TEST_F() [45/118]

TEST_F ( ParallelTest  ,
PfoldlMax   
)

◆ TEST_F() [46/118]

TEST_F ( ParallelTest  ,
PfoldlProduct   
)

◆ TEST_F() [47/118]

TEST_F ( ParallelTest  ,
PfoldlSum   
)

◆ TEST_F() [48/118]

TEST_F ( ParallelTest  ,
PforEachAcceptsDefaultPoolThroughOptions   
)

◆ TEST_F() [49/118]

TEST_F ( ParallelTest  ,
PforEachAtomic   
)

◆ TEST_F() [50/118]

TEST_F ( ParallelTest  ,
PforEachEmpty   
)

◆ TEST_F() [51/118]

TEST_F ( ParallelTest  ,
PforEachModify   
)

◆ TEST_F() [52/118]

TEST_F ( ParallelTest  ,
PmapsAcceptsParallelOptions   
)

◆ TEST_F() [53/118]

TEST_F ( ParallelTest  ,
PmapsEmpty   
)

◆ TEST_F() [54/118]

TEST_F ( ParallelTest  ,
PmapsLargeData   
)

◆ TEST_F() [55/118]

TEST_F ( ParallelTest  ,
PmapsPreservesOrder   
)

◆ TEST_F() [56/118]

TEST_F ( ParallelTest  ,
PmapsSingle   
)

◆ TEST_F() [57/118]

TEST_F ( ParallelTest  ,
PmapsSquare   
)

Definition at line 79 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmaps().

◆ TEST_F() [58/118]

TEST_F ( ParallelTest  ,
PmapsToString   
)

Definition at line 94 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmaps().

◆ TEST_F() [59/118]

TEST_F ( ParallelTest  ,
PmapsTypeConversion   
)

Definition at line 86 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [60/118]

TEST_F ( ParallelTest  ,
PmapsWithList   
)

◆ TEST_F() [61/118]

TEST_F ( ParallelTest  ,
Pmax   
)

Definition at line 482 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmax().

◆ TEST_F() [62/118]

TEST_F ( ParallelTest  ,
PmaxEmpty   
)

Definition at line 495 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmax().

◆ TEST_F() [63/118]

TEST_F ( ParallelTest  ,
Pmin   
)

Definition at line 475 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmin().

◆ TEST_F() [64/118]

TEST_F ( ParallelTest  ,
PminEmpty   
)

Definition at line 489 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), and Aleph::pmin().

◆ TEST_F() [65/118]

TEST_F ( ParallelTest  ,
Pminmax   
)

◆ TEST_F() [66/118]

TEST_F ( ParallelTest  ,
PminmaxLargeData   
)

◆ TEST_F() [67/118]

TEST_F ( ParallelTest  ,
PminmaxShuffle   
)

◆ TEST_F() [68/118]

TEST_F ( ParallelTest  ,
PnoneFalse   
)

◆ TEST_F() [69/118]

TEST_F ( ParallelTest  ,
PnoneTrue   
)

◆ TEST_F() [70/118]

TEST_F ( ParallelTest  ,
PpartitionAcceptsParallelOptions   
)

◆ TEST_F() [71/118]

TEST_F ( ParallelTest  ,
PpartitionAllFalse   
)

◆ TEST_F() [72/118]

TEST_F ( ParallelTest  ,
PpartitionAllTrue   
)

◆ TEST_F() [73/118]

TEST_F ( ParallelTest  ,
PpartitionBasic   
)

◆ TEST_F() [74/118]

TEST_F ( ParallelTest  ,
PpartitionEmpty   
)

◆ TEST_F() [75/118]

◆ TEST_F() [76/118]

TEST_F ( ParallelTest  ,
PpartitionPreservesOrder   
)

◆ TEST_F() [77/118]

TEST_F ( ParallelTest  ,
PpartitionSupportsNonDefaultConstructibleValues   
)

◆ TEST_F() [78/118]

TEST_F ( ParallelTest  ,
Pproduct   
)

◆ TEST_F() [79/118]

TEST_F ( ParallelTest  ,
PproductEmpty   
)

◆ TEST_F() [80/118]

TEST_F ( ParallelTest  ,
PscanContainerWrapperMatchesPartialSum   
)

◆ TEST_F() [81/118]

TEST_F ( ParallelTest  ,
PsortAcceptsParallelOptions   
)

◆ TEST_F() [82/118]

TEST_F ( ParallelTest  ,
PsortAlreadySorted   
)

◆ TEST_F() [83/118]

TEST_F ( ParallelTest  ,
PsortBasic   
)

◆ TEST_F() [84/118]

TEST_F ( ParallelTest  ,
PsortDescending   
)

◆ TEST_F() [85/118]

TEST_F ( ParallelTest  ,
PsortEmpty   
)

◆ TEST_F() [86/118]

◆ TEST_F() [87/118]

TEST_F ( ParallelTest  ,
PsortLargeData   
)

◆ TEST_F() [88/118]

TEST_F ( ParallelTest  ,
PsortSingle   
)

◆ TEST_F() [89/118]

TEST_F ( ParallelTest  ,
Psum   
)

◆ TEST_F() [90/118]

TEST_F ( ParallelTest  ,
PsumEmpty   
)

◆ TEST_F() [91/118]

TEST_F ( ParallelTest  ,
PsumLargeData   
)

Definition at line 453 of file ah_parallel_test.cc.

References Aleph::divide_and_conquer_partition_dp(), LL, and Aleph::sum().

◆ TEST_F() [92/118]

TEST_F ( ParallelTest  ,
PsumWithInit   
)

◆ TEST_F() [93/118]

TEST_F ( ParallelTest  ,
PzipAllN3ContainersFalse   
)

◆ TEST_F() [94/118]

TEST_F ( ParallelTest  ,
PzipAllN3ContainersTrue   
)

◆ TEST_F() [95/118]

TEST_F ( ParallelTest  ,
PzipCountIfN   
)

◆ TEST_F() [96/118]

TEST_F ( ParallelTest  ,
PzipCountIfNPartial   
)

◆ TEST_F() [97/118]

TEST_F ( ParallelTest  ,
PzipExistsNFalse   
)

◆ TEST_F() [98/118]

TEST_F ( ParallelTest  ,
PzipExistsNTrue   
)

◆ TEST_F() [99/118]

TEST_F ( ParallelTest  ,
PzipFoldlNVariadic   
)

◆ TEST_F() [100/118]

TEST_F ( ParallelTest  ,
PzipForEachBasic   
)

◆ TEST_F() [101/118]

TEST_F ( ParallelTest  ,
PzipForEachDifferentLengths   
)

◆ TEST_F() [102/118]

TEST_F ( ParallelTest  ,
PzipForEachEmpty   
)

◆ TEST_F() [103/118]

TEST_F ( ParallelTest  ,
PzipForEachN3Containers   
)

◆ TEST_F() [104/118]

TEST_F ( ParallelTest  ,
PzipForEachN4Containers   
)

◆ TEST_F() [105/118]

TEST_F ( ParallelTest  ,
PzipForEachNDifferentLengths   
)

◆ TEST_F() [106/118]

TEST_F ( ParallelTest  ,
PzipForEachNLargeData   
)

◆ TEST_F() [107/118]

TEST_F ( ParallelTest  ,
PzipMapsBasic   
)

◆ TEST_F() [108/118]

TEST_F ( ParallelTest  ,
PzipMapsN3Containers   
)

◆ TEST_F() [109/118]

TEST_F ( ParallelTest  ,
PzipMapsNEmpty   
)

◆ TEST_F() [110/118]

TEST_F ( ParallelTest  ,
PzipMapsNLargeData   
)

◆ TEST_F() [111/118]

TEST_F ( ParallelTest  ,
PzipMapsTypeConversion   
)

◆ TEST_F() [112/118]

TEST_F ( ParallelTest  ,
ScanAndMergeAcceptParallelOptions   
)

◆ TEST_F() [113/118]

◆ TEST_F() [114/118]

TEST_F ( ParallelTest  ,
ScanAndMergeSupportNonDefaultConstructibleValues   
)

◆ TEST_F() [115/118]

TEST_F ( ParallelTest  ,
ThreadSafetyConcurrentOperations   
)

◆ TEST_F() [116/118]

◆ TEST_F() [117/118]

TEST_F ( ParallelTest  ,
ZipAlgorithmsAcceptParallelOptions   
)

◆ TEST_F() [118/118]