Skip to content
Snippets Groups Projects
Select Git revision
  • d7c092cd3b413062fd7482156f53c07eacd7daf5
  • develop default protected
  • feature/advection
  • feature/composite-scheme-other-fluxes
  • origin/stage/bouguettaia
  • save_clemence
  • feature/local-dt-fsi
  • feature/variational-hydro
  • feature/gmsh-reader
  • feature/reconstruction
  • feature/kinetic-schemes
  • feature/composite-scheme-sources
  • feature/serraille
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

ReadArray.hpp

Blame
  • test_InterpolateItemArray.cpp 18.60 KiB
    #include <catch2/catch_test_macros.hpp>
    #include <catch2/matchers/catch_matchers_all.hpp>
    
    #include <language/ast/ASTBuilder.hpp>
    #include <language/ast/ASTModulesImporter.hpp>
    #include <language/ast/ASTNodeDataTypeBuilder.hpp>
    #include <language/ast/ASTNodeExpressionBuilder.hpp>
    #include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
    #include <language/ast/ASTNodeFunctionExpressionBuilder.hpp>
    #include <language/ast/ASTNodeTypeCleaner.hpp>
    #include <language/ast/ASTSymbolTableBuilder.hpp>
    #include <language/utils/PugsFunctionAdapter.hpp>
    #include <language/utils/SymbolTable.hpp>
    
    #include <MeshDataBaseForTests.hpp>
    #include <mesh/Connectivity.hpp>
    #include <mesh/Mesh.hpp>
    #include <mesh/MeshData.hpp>
    #include <mesh/MeshDataManager.hpp>
    
    #include <language/utils/InterpolateItemArray.hpp>
    
    #include <pegtl/string_input.hpp>
    
    // clazy:excludeall=non-pod-global-static
    
    TEST_CASE("InterpolateItemArray", "[language]")
    {
      SECTION("interpolate on all items")
      {
        auto same_cell_array = [](auto f, auto g) -> bool {
          using ItemIdType = typename decltype(f)::index_type;
    
          for (ItemIdType item_id = 0; item_id < f.numberOfItems(); ++item_id) {
            for (size_t i = 0; i < f.sizeOfArrays(); ++i) {
              if (f[item_id][i] != g[item_id][i]) {
                return false;
              }
            }
          }
    
          return true;
        };
    
        SECTION("1D")
        {
          constexpr size_t Dimension = 1;
    
          std::array mesh_list = MeshDataBaseForTests::get().all1DMeshes();
    
          for (const auto& named_mesh : mesh_list) {
            SECTION(named_mesh.name())
            {
              auto mesh_1d = named_mesh.mesh();
    
              auto xj = MeshDataManager::instance().getMeshData(*mesh_1d).xj();
    
              std::string_view data = R"(
    import math;
    let scalar_affine_1d: R^1 -> R, x -> 2*x[0] + 2;
    let scalar_non_linear_1d: R^1 -> R, x -> 2 * exp(x[0]) + 3;
    )";
              TAO_PEGTL_NAMESPACE::string_input input{data, "test.pgs"};
    
              auto ast = ASTBuilder::build(input);
    
              ASTModulesImporter{*ast};
              ASTNodeTypeCleaner<language::import_instruction>{*ast};
    
              ASTSymbolTableBuilder{*ast};