# Boost.uBLAS
#
#  Copyright (c) 2018-2020, Cem Bassoy, cem.bassoy@gmail.com
#  Copyright (c) 2019-2020, 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
#

project boost/ublas/test/tensor
    : requirements
      # these tests require C++17
      <cxxstd>11:<build>no
      <toolset>gcc:<cxxflags>"-Wall -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-but-set-variable -O0 --coverage -g" <linkflags>--coverage
    ;

alias unit_test_framework
    : # sources
        /boost//unit_test_framework
    ;

# make aliases explicit so the libraries will only be built when requested
explicit unit_test_framework ;



test-suite boost-ublas-tensor-test
    :
    [ run test_tensor.cpp
          test_strides.cpp
          test_expression.cpp
          test_operators_comparison.cpp 
          test_operators_arithmetic.cpp
          test_multiplication.cpp
          test_multi_index_utility.cpp
          test_multi_index.cpp
          test_extents.cpp
          test_expression_evaluation.cpp
          test_einstein_notation.cpp
          test_algorithms.cpp
          test_tensor_matrix_vector.cpp
          unit_test_framework
    ]
    [ run test_static_tensor.cpp
          test_static_extents.cpp
          test_static_strides.cpp
          test_static_operators_arithmetic.cpp
          test_static_operators_comparison.cpp
          test_static_expression_evaluation.cpp
          test_static_tensor_matrix_vector.cpp
          unit_test_framework
    ]
    [ run test_fixed_rank_tensor.cpp
          test_fixed_rank_operators_arithmetic.cpp
          test_fixed_rank_operators_comparison.cpp
          test_fixed_rank_expression_evaluation.cpp
          test_fixed_rank_tensor_matrix_vector.cpp
          unit_test_framework 
    ]
    [ run test_functions.cpp
          unit_test_framework
    ]
    ;
