Path: blob/master/modules/gapi/test/util/any_tests.cpp
16354 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html.3//4// Copyright (C) 2018 Intel Corporation567#include "test_precomp.hpp"8#include "opencv2/gapi/util/any.hpp"910namespace opencv_test11{1213TEST(Any, basic)14{15using namespace util;16any a(8);17auto casted_pointer = any_cast<int>(&a);18ASSERT_NE(nullptr, casted_pointer);19ASSERT_EQ(*casted_pointer, 8);2021*casted_pointer = 7;22ASSERT_EQ(any_cast<int>(a), 7);23}2425TEST(Any, any_cast_ref_throws_on_empty)26{27using namespace util;28any a;2930ASSERT_THROW(util::any_cast<int>(a), bad_any_cast);31}3233TEST(Any, copy)34{35using namespace util;36any a(8);3738ASSERT_EQ(any_cast<int>(a), 8);3940any b (a);4142ASSERT_NE(nullptr, any_cast<int>(&b));43ASSERT_EQ(8 , any_cast<int>(b));44ASSERT_EQ(8 , any_cast<int>(a));45}4647TEST(Any, copy_empty)48{49using namespace util;50any a;5152ASSERT_EQ(nullptr, any_cast<int>(&a));5354any b (a);5556ASSERT_EQ(nullptr, any_cast<int>(&a));57ASSERT_EQ(nullptr, any_cast<int>(&b));58}5960TEST(Any, move)61{62using namespace util;63any a(8);6465ASSERT_EQ(any_cast<int>(a), 8);6667any b (std::move(a));6869ASSERT_NE(nullptr, any_cast<int>(&b));70ASSERT_EQ(8 , any_cast<int>(b));71ASSERT_EQ(nullptr, any_cast<int>(&a));72}7374TEST(Any, swap)75{76using namespace util;77any a(8);78any b(7);7980ASSERT_EQ(7, any_cast<int>(b));81ASSERT_EQ(8, any_cast<int>(a));8283swap(a,b);8485ASSERT_EQ(8, any_cast<int>(b));86ASSERT_EQ(7, any_cast<int>(a));87}8889TEST(Any, move_assign)90{91using namespace util;92any a(8);93any b;9495ASSERT_EQ(any_cast<int>(a), 8);9697b = (std::move(a));9899ASSERT_NE(nullptr, any_cast<int>(&b));100ASSERT_EQ(8 , any_cast<int>(b));101ASSERT_EQ(nullptr, any_cast<int>(&a));102}103104TEST(Any, copy_assign)105{106using namespace util;107any a(8);108any b;109110ASSERT_EQ(any_cast<int>(a), 8);111ASSERT_EQ(nullptr, any_cast<int>(&b));112113b = a;114115ASSERT_NE(nullptr, any_cast<int>(&b));116ASSERT_EQ(8 , any_cast<int>(b));117ASSERT_EQ(8 , any_cast<int>(a));118}119120} // namespace opencv_test121122123