Test all possible execution parameters in unit tests
Similar design changes as !176 (merged). Use the GoogleTest framework's type-parameterized tests to verify correctness in all available execution spaces instead of just the default. Closes #185 (closed). MR changes:
- Recursively generate all possible execution parameters (precision, execution space, dimensionality) at compile time via metaprogramming. Each combination corresponds to a new set of unit tests. This verifies behavior under (hopefully) all possible circumstances.
- Fix particle scatter/gather for builds with multiple accelerators by generalizing the accepted data types (in the future, additional checks should be added to verify compatibility at compile time; see #189)
- Move metaloop implementation into the IPPL framework and adapt for view printing instead of having two implementations.
-
Modernize type aliases in
ParallelDispatch.h
- Follow-up to !199 (merged); fix an unnoticed issue with ORB in mixed execution environments and update ORB docstrings.
Edited by vinciguerra_a