Added the following test cases to Data.Fold:
drain, drainBy, mean, stdDev, variance, mconcat, foldMap, foldMapM,
lookup, mapM, teeWithLength, teeWithMax, distribute, partition, unzip
Added the following test cases to Data.Array.Storable.Foreign
* fromList and fromListN
Added FileSystem.Handle module
RUNNING_BENCHMARKS/RUNNING_TESTS variables were getting cleared up by
set_common_vars. Also, all_grp is a function and should be treated
differently than variables.
It would be helpful to run bin/test.sh locally without having to install
dependencies of hpc-coveralls. Instead we can install hpc-coveralls
independently and use it after installing it once.
This allows us to build and run individual tests or groups of tests. The
script is supposed to be extended to run hpc/coverage manually after
running the tests.
Note: cabal fails to run coverage if the test module is separated from
the library.
Wherever possible, to improve build times.
We keep one CI having benchmarks and tests optimized + fusion plugin. In
all other CIs we remove optimization from benchmarks and tests.
Disable x86 build on circle-ci.
To be able to use an internal test library, we need to have it as a
separate package. See comments in streamly-benchmarks.cabal for details.
Use a test library for common test modules
Also, added "opt" flag to control optimization levels.
Add a README for tests.
Update benchmarks readme.
* IsStream:
* Add foldMany
* Update haddock docs, with fold equivalents. Now with terminating folds the
fold behvaior is equivalent to these folds.
* Add skeletons for foldSequence/foldIterate/parseSequence
* Implement combinators directly in terms of foldMany/foldMany1
StreamD:
* export foldMany/foldMany1
* Remove groupsOf/splitBy/splitSuffixBy/splitSuffixWith, we can use
foldMany/foldMany1 directly instead.
* Make some stylistic changes to code
StreamD/Types:
* Remove groupsOf
* Remove GroupConsume state from foldMany/foldMany1
* Add benchmarks for foldMany
Data.Fold.Types:
* Remove takeSepBy: This function does not do what the name. Also,
`takeSepBy p` is the same as (sliceSepBy (not . p)). We can just remove
this in favor of sliceSepBy.
Data.Fold:
* Reorganize exports
* Add some skeleton/unimplemented combinators.
* Add/update haddock documentation
* Add sliceSepByMax fold - It was in parsers but it can be implemented
as a fold.
* Rename drainSepBy to drainWhile
* Rename sliceSepWith to sliceEndWith
* Remove distribute_ as it can be implemented using distribute and has
not perf advantage.
* Remove demuxWithDefault_ and implement demuxDefaultWith instead, which
does not discard the results. Discarding results has no perf
advantage.
* Implement demuxWith in terms of demuxDefaultWith, it has no perf
advantage over the latter.
* Remove demuxWith_, use demuxWith instead.
* Remove demuxDefault_, use demuxDefault instead.
* Some code/comment cleanups
Benchmarks:
* Changes corresponding to the source changes
* Some code cleanups
* Reorder benchmarks