pytorch/test/cpp/api
Will Feng b564eaf7a8 Bug fixes: torch::tensor(floating-point values) -> default dtype, and torch::tensor(integer values) ->at::kLong (#32367)
Summary:
Some of the `torch::tensor` behavior is updated to better match Python API. Fixes https://github.com/pytorch/pytorch/issues/32234.

This PR is BC-breaking in the following way:
- `torch::tensor({1.0f, 2.0f})`: float -> default dtype
- `torch::tensor(at::ArrayRef<int>({1, 2, 3}))`: int -> at::kLong
- `torch::tensor(std::vector<int>({1, 2, 3}))`: int -> at::kLong
- `torch::tensor(at::ArrayRef<float>({1.f, 2.f, 3.f}))`: float -> default dtype
- `torch::tensor(std::vector<float>({1.f, 2.f, 3.f}))`: float -> default dtype
- `torch::tensor(at::ArrayRef<double>({1., 2., 3.}))`: double -> default dtype
- `torch::tensor(std::vector<double>({1., 2., 3.}))`: double -> default dtype
Pull Request resolved: https://github.com/pytorch/pytorch/pull/32367

Differential Revision: D19498484

Pulled By: yf225

fbshipit-source-id: 19c8dc2a56476266153cff4c404e7f84d309eb12
2020-02-01 15:00:07 -08:00
..
any.cpp Remove dead includes in caffe2/test 2020-01-21 11:30:34 -08:00
autograd.cpp Fix bugs in torch::tensor constructor (#28523) 2019-10-31 12:53:06 -07:00
CMakeLists.txt C++ tensor indexing: add Slice / TensorIndex (#30424) 2020-01-10 17:53:41 -08:00
dataloader.cpp Fix typos (#30606) 2019-12-02 20:17:42 -08:00
enum.cpp Use c10::variant-based enums for F::grid_sample 2019-11-12 16:05:26 -08:00
expanding-array.cpp Change C++ API test files to only include torch/torch.h (#27067) 2019-10-10 09:46:29 -07:00
functional.cpp Remove dead includes in caffe2/test 2020-01-21 11:30:34 -08:00
init.cpp Back out "Make autogen functions correct for multiple outputs and views" (#32681) 2020-01-27 19:54:34 -08:00
init_baseline.h
init_baseline.py
integration.cpp C++ API parity: Dropout, Dropout2d, Dropout3d 2019-11-15 20:32:06 -08:00
jit.cpp Remove attempToRecoverType (#26767) 2019-10-16 11:07:13 -07:00
memory.cpp
misc.cpp Change C++ API test files to only include torch/torch.h (#27067) 2019-10-10 09:46:29 -07:00
module.cpp Remove dead includes in caffe2/test 2020-01-21 11:30:34 -08:00
modulelist.cpp C++ API parity: Dropout, Dropout2d, Dropout3d 2019-11-15 20:32:06 -08:00
modules.cpp Remove dead includes in caffe2/test 2020-01-21 11:30:34 -08:00
nn_utils.cpp Remove dead includes in caffe2/test 2020-01-21 11:30:34 -08:00
optim.cpp Adagrad optimizer - updated step function, added param_groups, state to optimizers 2020-01-21 14:41:12 -08:00
optim_baseline.h
optim_baseline.py
ordered_dict.cpp Change C++ API test files to only include torch/torch.h (#27067) 2019-10-10 09:46:29 -07:00
parallel.cpp Fix bugs in torch::tensor constructor (#28523) 2019-10-31 12:53:06 -07:00
README.md
rnn.cpp Fix typos, via a Levenshtein-type corrector (#31523) 2020-01-17 16:03:19 -08:00
sequential.cpp C++ API parity: Dropout, Dropout2d, Dropout3d 2019-11-15 20:32:06 -08:00
serialize.cpp Adagrad optimizer - updated step function, added param_groups, state to optimizers 2020-01-21 14:41:12 -08:00
static.cpp
support.cpp Use default dtype for torch::tensor(floating_point_values) and torch::tensor(empty braced-init-list) when dtype is not specified (#29632) 2019-11-13 15:17:11 -08:00
support.h Exclude undefined tensors in the result of Module::parameters() / named_paramters() / buffers() / named_buffers() (#30626) 2019-12-02 21:59:58 -08:00
tensor.cpp Bug fixes: torch::tensor(floating-point values) -> default dtype, and torch::tensor(integer values) ->at::kLong (#32367) 2020-02-01 15:00:07 -08:00
tensor_cuda.cpp Fix MagmaInitializesCorrectly_CUDA by using an invertible matrix (#32547) 2020-01-25 20:00:54 -08:00
tensor_indexing.cpp Fix typo in config script to re-enable libtorch build and test in macOS CI (#32072) 2020-01-14 16:23:57 -08:00
tensor_options.cpp Deprecate tensor.type() (#30281) 2019-12-05 10:55:34 -08:00
tensor_options_cuda.cpp Deprecate tensor.type() (#30281) 2019-12-05 10:55:34 -08:00
torch_include.cpp Relax set_num_threads restriction in parallel native case (#27947) 2019-10-16 21:53:36 -07:00

C++ Frontend Tests

In this folder live the tests for PyTorch's C++ Frontend. They use the GoogleTest test framework.

CUDA Tests

To make a test runnable only on platforms with CUDA, you should suffix your test with _CUDA, e.g.

TEST(MyTestSuite, MyTestCase_CUDA) { }

To make it runnable only on platforms with at least two CUDA machines, suffix it with _MultiCUDA instead of _CUDA, e.g.

TEST(MyTestSuite, MyTestCase_MultiCUDA) { }

There is logic in main.cpp that detects the availability and number of CUDA devices and supplies the appropriate negative filters to GoogleTest.

Integration Tests

Integration tests use the MNIST dataset. You must download it by running the following command from the PyTorch root folder:

$ python tools/download_mnist.py -d test/cpp/api/mnist

The required paths will be referenced as test/cpp/api/mnist/... in the test code, so you must run the integration tests from the PyTorch root folder.