Last active
May 25, 2021 11:59
-
-
Save amitsingh19975/f9aca9e265e09431c674de9c77558a98 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Copyright (c) 2021 Cem Bassoy, cem.bassoy@gmail.com | |
// Copyright (c) 2021, Amit Singh, amitsingh19975@gmail.com | |
// | |
// Distributed under the Boost Software License, Version 1.0. (See | |
// accompanying file LICENSE_1_0.txt or copy at | |
// http://www.boost.org/LICENSE_1_0.txt) | |
// | |
// The authors gratefully acknowledge the support of | |
// Google and Fraunhofer IOSB, Ettlingen, Germany | |
// | |
#include <boost/test/unit_test.hpp> | |
#include "generator_utility.hpp" | |
BOOST_AUTO_TEST_SUITE(test_empty_function, * boost::unit_test::description("Validate Empty Function, Method, and Trait")) | |
BOOST_FIXTURE_TEST_CASE(test_extents_dynamic_function, | |
boost::numeric::ublas::fixture_extents_dynamic<std::size_t>, | |
*boost::unit_test::label("boost::numeric::ublas::empty(extents_base<D> const&)") | |
*boost::unit_test::description("Testing free function empty for dynamic extents")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(0) dynamic extents"); | |
BOOST_CHECK( ublas::empty(n )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(1) dynamic extents"); | |
BOOST_CHECK(!ublas::empty(n1 )); | |
BOOST_CHECK(!ublas::empty(n2 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(2) dynamic extents"); | |
BOOST_CHECK(!ublas::empty(n11 )); | |
BOOST_CHECK(!ublas::empty(n12 )); | |
BOOST_CHECK(!ublas::empty(n21 )); | |
BOOST_CHECK(!ublas::empty(n22 )); | |
BOOST_CHECK(!ublas::empty(n32 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(3) dynamic extents"); | |
BOOST_CHECK(!ublas::empty(n111 )); | |
BOOST_CHECK(!ublas::empty(n112 )); | |
BOOST_CHECK(!ublas::empty(n121 )); | |
BOOST_CHECK(!ublas::empty(n123 )); | |
BOOST_CHECK(!ublas::empty(n211 )); | |
BOOST_CHECK(!ublas::empty(n213 )); | |
BOOST_CHECK(!ublas::empty(n321 )); | |
BOOST_CHECK(!ublas::empty(n432 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(4) dynamic extents"); | |
BOOST_CHECK(!ublas::empty(n1111)); | |
BOOST_CHECK(!ublas::empty(n4231)); | |
} | |
BOOST_FIXTURE_TEST_CASE(test_extents_static_rank_function, | |
boost::numeric::ublas::fixture_extents_static_rank<std::size_t>, | |
*boost::unit_test::label("boost::numeric::ublas::empty(extents_base<D> const&)") | |
*boost::unit_test::description("Testing free function empty for static rank extents")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(0) static rank extents"); | |
BOOST_CHECK( ublas::empty(n )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(1) static rank extents"); | |
BOOST_CHECK(!ublas::empty(n1 )); | |
BOOST_CHECK(!ublas::empty(n2 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(2) static rank extents"); | |
BOOST_CHECK(!ublas::empty(n11 )); | |
BOOST_CHECK(!ublas::empty(n12 )); | |
BOOST_CHECK(!ublas::empty(n21 )); | |
BOOST_CHECK(!ublas::empty(n22 )); | |
BOOST_CHECK(!ublas::empty(n32 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(3) static rank extents"); | |
BOOST_CHECK(!ublas::empty(n111 )); | |
BOOST_CHECK(!ublas::empty(n112 )); | |
BOOST_CHECK(!ublas::empty(n121 )); | |
BOOST_CHECK(!ublas::empty(n123 )); | |
BOOST_CHECK(!ublas::empty(n211 )); | |
BOOST_CHECK(!ublas::empty(n213 )); | |
BOOST_CHECK(!ublas::empty(n321 )); | |
BOOST_CHECK(!ublas::empty(n432 )); | |
BOOST_TEST_CHECKPOINT("[Empty Free Function] rank(4) static rank extents"); | |
BOOST_CHECK(!ublas::empty(n1111)); | |
BOOST_CHECK(!ublas::empty(n4231)); | |
} | |
BOOST_FIXTURE_TEST_CASE(test_extents_static_trait, | |
boost::numeric::ublas::fixture_extents_static<std::size_t>, | |
*boost::unit_test::label("boost::numeric::ublas::empty_v<extents_core<...>>") | |
*boost::unit_test::description("Testing trait empty_v for static extents")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Trait] rank(0) static rank extents"); | |
BOOST_CHECK( ublas::empty_v<n_type >); | |
BOOST_TEST_CHECKPOINT("[Empty Trait] rank(1) static extents"); | |
BOOST_CHECK(!ublas::empty_v<n1_type >); | |
BOOST_CHECK(!ublas::empty_v<n2_type >); | |
BOOST_TEST_CHECKPOINT("[Empty Trait] rank(2) static extents"); | |
BOOST_CHECK(!ublas::empty_v<n11_type >); | |
BOOST_CHECK(!ublas::empty_v<n12_type >); | |
BOOST_CHECK(!ublas::empty_v<n21_type >); | |
BOOST_CHECK(!ublas::empty_v<n22_type >); | |
BOOST_CHECK(!ublas::empty_v<n32_type >); | |
BOOST_TEST_CHECKPOINT("[Empty Trait] rank(3) static extents"); | |
BOOST_CHECK(!ublas::empty_v<n111_type >); | |
BOOST_CHECK(!ublas::empty_v<n112_type >); | |
BOOST_CHECK(!ublas::empty_v<n121_type >); | |
BOOST_CHECK(!ublas::empty_v<n123_type >); | |
BOOST_CHECK(!ublas::empty_v<n211_type >); | |
BOOST_CHECK(!ublas::empty_v<n213_type >); | |
BOOST_CHECK(!ublas::empty_v<n321_type >); | |
BOOST_CHECK(!ublas::empty_v<n432_type >); | |
BOOST_TEST_CHECKPOINT("[Empty Trait] rank(4) static extents"); | |
BOOST_CHECK(!ublas::empty_v<n1111_type>); | |
BOOST_CHECK(!ublas::empty_v<n4231_type>); | |
} | |
BOOST_FIXTURE_TEST_CASE(test_tensor_dynamic, | |
boost::numeric::ublas::fixture_tensor_dynamic<float>, | |
*boost::unit_test::label("boost::numeric::ublas::tensor_dynamic::empty") | |
*boost::unit_test::description("Testing the dynamic tensor's empty method")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(1) dynamic tensor"); | |
BOOST_CHECK(!t2.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(2) dynamic tensor"); | |
BOOST_CHECK(!t11.empty() ); | |
BOOST_CHECK(!t12.empty() ); | |
BOOST_CHECK(!t21.empty() ); | |
BOOST_CHECK(!t22.empty() ); | |
BOOST_CHECK(!t32.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(3) dynamic tensor"); | |
BOOST_CHECK(!t111.empty() ); | |
BOOST_CHECK(!t112.empty() ); | |
BOOST_CHECK(!t121.empty() ); | |
BOOST_CHECK(!t123.empty() ); | |
BOOST_CHECK(!t211.empty() ); | |
BOOST_CHECK(!t213.empty() ); | |
BOOST_CHECK(!t321.empty() ); | |
BOOST_CHECK(!t432.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(4) dynamic tensor"); | |
BOOST_CHECK(!t1111.empty()); | |
BOOST_CHECK(!t4231.empty()); | |
} | |
BOOST_FIXTURE_TEST_CASE(test_tensor_static_rank, | |
boost::numeric::ublas::fixture_tensor_static_rank<float>, | |
*boost::unit_test::label("boost::numeric::ublas::tensor_static_rank::empty") | |
*boost::unit_test::description("Testing the static rank tensor's empty method")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(1) static_rank tensor"); | |
BOOST_CHECK(!t2.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(2) static_rank tensor"); | |
BOOST_CHECK(!t11.empty() ); | |
BOOST_CHECK(!t12.empty() ); | |
BOOST_CHECK(!t21.empty() ); | |
BOOST_CHECK(!t22.empty() ); | |
BOOST_CHECK(!t32.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(3) static_rank tensor"); | |
BOOST_CHECK(!t111.empty() ); | |
BOOST_CHECK(!t112.empty() ); | |
BOOST_CHECK(!t121.empty() ); | |
BOOST_CHECK(!t123.empty() ); | |
BOOST_CHECK(!t211.empty() ); | |
BOOST_CHECK(!t213.empty() ); | |
BOOST_CHECK(!t321.empty() ); | |
BOOST_CHECK(!t432.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(4) static_rank tensor"); | |
BOOST_CHECK(!t1111.empty()); | |
BOOST_CHECK(!t4231.empty()); | |
} | |
BOOST_FIXTURE_TEST_CASE(test_tensor_static, | |
boost::numeric::ublas::fixture_tensor_static<float>, | |
*boost::unit_test::label("boost::numeric::ublas::tensor_static::empty") | |
*boost::unit_test::description("Testing the static tensor's empty method")) | |
{ | |
namespace ublas = boost::numeric::ublas; | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(1) static tensor"); | |
BOOST_CHECK(!t2.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(2) static tensor"); | |
BOOST_CHECK(!t11.empty() ); | |
BOOST_CHECK(!t12.empty() ); | |
BOOST_CHECK(!t21.empty() ); | |
BOOST_CHECK(!t22.empty() ); | |
BOOST_CHECK(!t32.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(3) static tensor"); | |
BOOST_CHECK(!t111.empty() ); | |
BOOST_CHECK(!t112.empty() ); | |
BOOST_CHECK(!t121.empty() ); | |
BOOST_CHECK(!t123.empty() ); | |
BOOST_CHECK(!t211.empty() ); | |
BOOST_CHECK(!t213.empty() ); | |
BOOST_CHECK(!t321.empty() ); | |
BOOST_CHECK(!t432.empty() ); | |
BOOST_TEST_CHECKPOINT("[Empty Method] rank(4) static tensor"); | |
BOOST_CHECK(!t1111.empty()); | |
BOOST_CHECK(!t4231.empty()); | |
} | |
BOOST_AUTO_TEST_SUITE_END() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Copyright (c) 2018, Cem Bassoy, cem.bassoy@gmail.com | |
// Copyright (c) 2019, Amit Singh, amitsingh19975@gmail.com | |
// | |
// Distributed under the Boost Software License, Version 1.0. (See | |
// accompanying file LICENSE_1_0.txt or copy at | |
// http://www.boost.org/LICENSE_1_0.txt) | |
// | |
// The authors gratefully acknowledge the support of | |
// Google and Fraunhofer IOSB, Ettlingen, Germany | |
// | |
#ifndef BOOST_TEST_DYN_LINK | |
#define BOOST_TEST_DYN_LINK | |
#endif | |
// NOLINTNEXTLINE | |
#define BOOST_TEST_MODULE MainTensor | |
#include <boost/test/unit_test.hpp> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment