torchquad icon indicating copy to clipboard operation
torchquad copied to clipboard

Code style in the tests

Open FHof opened this issue 2 years ago • 0 comments

It could be possible to change the tests code so that it is easier to read and maintain:

  • Currently the tests use sys.path.append for the imports instead of importing torchquad, so __init__.py is not executed. This also hinders the use of relative imports, e.g. in integration/utils.py.
  • It may be possible to shorten the code by replacing the setup_test_for_backend with parameterized tests.
  • utils_integration_test.py shows warnings while the other code uses pytest skips if a backend is not installed. The code could be changed so that pytest skips are used everywhere.

Some of these changes may however make it more difficult to support the execution of the test files with python3 in addition to pytest.

A documentation on how to execute the tests could also be helpful, for example because of GPU out-of-memory problems due to the backend imports: The test executions on GPU currently may require environment variables which change the memory allocation behaviour of the backends since all backends are imported one after another and some of them can reserve the whole GPU memory. These environment variables are, for example, XLA_PYTHON_CLIENT_PREALLOCATE=false, TF_FORCE_GPU_ALLOW_GROWTH=true and TF_GPU_ALLOCATOR=cuda_malloc_async. It is also possible to execute the tests on the CPU with CUDA_VISIBLE_DEVICES="".

FHof avatar Apr 30 '22 10:04 FHof