1 // This file is part of OpenCV project.
2 // It is subject to the license terms in the LICENSE file found in the top-level directory
3 // of this distribution and at http://opencv.org/license.html.
5 // Copyright (C) 2018-2019 Intel Corporation
8 #include "test_precomp.hpp"
9 #include "opencv2/gapi/util/any.hpp"
18 auto casted_pointer = any_cast<int>(&a);
19 ASSERT_NE(nullptr, casted_pointer);
20 ASSERT_EQ(*casted_pointer, 8);
23 ASSERT_EQ(any_cast<int>(a), 7);
26 TEST(Any, any_cast_ref_throws_on_empty)
31 ASSERT_THROW(util::any_cast<int>(a), bad_any_cast);
39 ASSERT_EQ(any_cast<int>(a), 8);
43 ASSERT_NE(nullptr, any_cast<int>(&b));
44 ASSERT_EQ(8 , any_cast<int>(b));
45 ASSERT_EQ(8 , any_cast<int>(a));
53 ASSERT_EQ(nullptr, any_cast<int>(&a));
57 ASSERT_EQ(nullptr, any_cast<int>(&a));
58 ASSERT_EQ(nullptr, any_cast<int>(&b));
66 ASSERT_EQ(any_cast<int>(a), 8);
70 ASSERT_NE(nullptr, any_cast<int>(&b));
71 ASSERT_EQ(8 , any_cast<int>(b));
72 ASSERT_EQ(nullptr, any_cast<int>(&a));
81 ASSERT_EQ(7, any_cast<int>(b));
82 ASSERT_EQ(8, any_cast<int>(a));
86 ASSERT_EQ(8, any_cast<int>(b));
87 ASSERT_EQ(7, any_cast<int>(a));
90 TEST(Any, move_assign)
96 ASSERT_EQ(any_cast<int>(a), 8);
100 ASSERT_NE(nullptr, any_cast<int>(&b));
101 ASSERT_EQ(8 , any_cast<int>(b));
102 ASSERT_EQ(nullptr, any_cast<int>(&a));
105 TEST(Any, copy_assign)
107 using namespace util;
111 ASSERT_EQ(any_cast<int>(a), 8);
112 ASSERT_EQ(nullptr, any_cast<int>(&b));
116 ASSERT_NE(nullptr, any_cast<int>(&b));
117 ASSERT_EQ(8 , any_cast<int>(b));
118 ASSERT_EQ(8 , any_cast<int>(a));
121 } // namespace opencv_test