diff options
| author | Billy O'Neal <bion@microsoft.com> | 2020-03-16 11:19:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-16 11:19:55 -0700 |
| commit | 31cca075630fbb438c0ec4e942f3502b6995c235 (patch) | |
| tree | 40b05a0cb3e60f1219295eb9dd7626530038d923 /toolsrc/src/vcpkg-test/optional.cpp | |
| parent | ecff0166637f958b0272d10f5f308c83e25d4acb (diff) | |
| parent | 3cb8570203057b941722827a5fc38568e74c88cb (diff) | |
| download | vcpkg-31cca075630fbb438c0ec4e942f3502b6995c235.tar.gz vcpkg-31cca075630fbb438c0ec4e942f3502b6995c235.zip | |
[vcpkg] Implement a warning when running in a mismatched Visual Studio prompt
Diffstat (limited to 'toolsrc/src/vcpkg-test/optional.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg-test/optional.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg-test/optional.cpp b/toolsrc/src/vcpkg-test/optional.cpp new file mode 100644 index 000000000..ce728208f --- /dev/null +++ b/toolsrc/src/vcpkg-test/optional.cpp @@ -0,0 +1,39 @@ +#include <catch2/catch.hpp> +#include <vcpkg/base/optional.h> +#include <vector> + +namespace +{ + struct identity_projection + { + template<class T> + const T& operator()(const T& val) noexcept + { + return val; + } + }; +} + +TEST_CASE ("equal", "[optional]") +{ + using vcpkg::Optional; + + CHECK(Optional<int>{} == Optional<int>{}); + CHECK(!(Optional<int>{} == Optional<int>{42})); + CHECK(!(Optional<int>{42} == Optional<int>{})); + CHECK(!(Optional<int>{1729} == Optional<int>{42})); + CHECK(Optional<int>{42} == Optional<int>{42}); +} + +TEST_CASE ("common_projection", "[optional]") +{ + using vcpkg::common_projection; + std::vector<int> input; + CHECK(!common_projection(input, identity_projection{}).has_value()); + input.push_back(42); + CHECK(common_projection(input, identity_projection{}).value_or_exit(VCPKG_LINE_INFO) == 42); + input.push_back(42); + CHECK(common_projection(input, identity_projection{}).value_or_exit(VCPKG_LINE_INFO) == 42); + input.push_back(1729); + CHECK(!common_projection(input, identity_projection{}).has_value()); +} |
