Eric Liu
Eric Liu
Right now, all the boost python wrapped C++ functions take positional arguments only. Not only that but the arguments aren't named so error messages and autogen'd docs can be pretty...
This is a tracking ticket. #36 got us into using `pytest`. Now we should actually adopt its best-practices. I'm going to throw up a few examples now but others should...
pytest provides a powerful fixtures framework: http://pytest.org/latest/fixture.html We should place common ones (e.g., disable/re-enable logging) in a common location (similar to #407). For example, this ``` @pytest.fixture() def disable_logging(self, request):...
pytest fixtures let us do a lot more than we could with the old teardown/setup style. We should stop emulating testify/xUnit and start using pytest: http://pytest.org/latest/fixture.html http://pytest.org/latest/builtin.html#fixtures-and-requests http://pythontesting.net/framework/pytest/pytest-fixtures-nuts-bolts/ The current...
pytest allows us to parameterize tests: http://pytest.org/latest/example/parametrize.html Many tests (e.g., `moe/tests/optimal_learning/python/cpp_wrappers/gaussian_process_test.py::TestGaussianProcess::test_python_and_cpp_return_same_mu_and_gradient` or `moe/tests/views/exceptions_test.py::TestRestGaussianProcessWithExceptions::test_badly_formed_json_payload_invalid`) loop over multiple different inputs to essentially the same test (and often other tests in the file...
[Python] set up a common file for test markers/decorators (e.g., to mark flaky, excluded, slow, etc)
pytest provides a nice framework for skipping tests. It can handle conditionals, expected failures, and much more: http://pytest.org/latest/skipping.html e.g., skipping tests that are marked slow is as easy as: http://pytest.org/latest/example/simple.html#control-skipping-of-tests-according-to-command-line-option...
We spit out a ton of greetings messages from #400 in unit tests. There should be a verbosity level or similar so these can be disabled during testing. Some of...
BLOCKING: #398 Currently CudaExpectedImprovementState stores a UniformRandomGenerator. The generator is called before each GetEI or GetGradEI call to generate a new seed for the GPU's RNG. Instead, we should generate...
When multiple GPUs are available, we should be taking advantage of that functionality. The existing framework can very nearly already support this. That is, we support multi-threading on the CPU...
Through #368 and #394, we can now call GPU functions and conduct EI optimization on the GPU via the python interface (assuming you have a GPU and built the MOE-GPU...