text: //----------------------------------*-C++-*----------------------------------//
  // Copyright 2020 UT-Battelle, LLC, and other Celeritas developers.
  // See the top-level COPYRIGHT file for details.
  // SPDX-License-Identifier: (Apache-2.0 OR MIT)
  //---------------------------------------------------------------------------//
  //! \file Macros.hh
  //---------------------------------------------------------------------------//
  #pragma once
  
  #include "celeritas_config.h"
  
  //! Container equality macro
  #define EXPECT_VEC_EQ(expected, actual) \
      EXPECT_PRED_FORMAT2(::celeritas::detail::IsVecEq, expected, actual)
  
  //! Soft equivalence macro
  #define EXPECT_SOFT_EQ(expected, actual) \
      EXPECT_PRED_FORMAT2(::celeritas::detail::IsSoftEquiv, expected, actual)
  
  //! Soft equivalence macro with relative error
  #define EXPECT_SOFT_NEAR(expected, actual, rel_error) \
      EXPECT_PRED_FORMAT3(                              \
          ::celeritas::detail::IsSoftEquiv, expected, actual, rel_error)
  
  //! Container soft equivalence macro
  #define EXPECT_VEC_SOFT_EQ(expected, actual) \
      EXPECT_PRED_FORMAT2(::celeritas::detail::IsVecSoftEquiv, expected, actual)
  
  //! Container soft equivalence macro with relative error
  #define EXPECT_VEC_NEAR(expected, actual, rel_error) \
      EXPECT_PRED_FORMAT3(                             \
          ::celeritas::detail::IsVecSoftEquiv, expected, actual, rel_error)
  
  //! Container soft equivalence macro with relative and absolute error
  #define EXPECT_VEC_CLOSE(expected, actual, rel_error, abs_thresh) \
      EXPECT_PRED_FORMAT4(::celeritas::detail::IsVecSoftEquiv,      \
                          expected,                                 \
                          actual,                                   \
                          rel_error,                                \
                          abs_thresh)
  
  //! Print the given container as an array for regression testing
  #define PRINT_EXPECTED(data) ::celeritas::detail::print_expected(data, #data)
  
  //! Construct a test name that is disabled when assertions are enabled
  #if CELERITAS_DEBUG
  #    define TEST_IF_CELERITAS_DEBUG(name) name
  #else
  #    define TEST_IF_CELERITAS_DEBUG(name) DISABLED_##name
  #endif
  
  #include "Macros.i.hh"
  