Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-27 07:24:19

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 // covfie core
0010 #include <covfie/core/backend/primitive/constant.hpp>
0011 #include <covfie/core/field.hpp>
0012 #include <covfie/core/field_view.hpp>
0013 
0014 // GTest include(s)
0015 #include <gtest/gtest.h>
0016 
0017 GTEST_TEST(Covfie, ConstantField1D) {
0018   using field_t =
0019       covfie::field<covfie::backend::constant<covfie::vector::float1,
0020                                               covfie::vector::float1>>;
0021 
0022   field_t f(
0023       covfie::make_parameter_pack(field_t::backend_t::configuration_t{2.f}));
0024   field_t::view_t v(f);
0025 
0026   constexpr float start{-100.f};
0027   constexpr float step{1.f};
0028   for (int i = 0; i < 200; ++i) {
0029     const float x{start + static_cast<float>(i) * step};
0030 
0031     EXPECT_EQ(v.at(x)[0], 2.f);
0032   }
0033 }
0034 
0035 GTEST_TEST(Covfie, ConstantField2D) {
0036   using field_t =
0037       covfie::field<covfie::backend::constant<covfie::vector::float2,
0038                                               covfie::vector::float2>>;
0039 
0040   field_t f(covfie::make_parameter_pack(
0041       field_t::backend_t::configuration_t{2.f, 5.f}));
0042   field_t::view_t v(f);
0043 
0044   constexpr float start{-100.f};
0045   constexpr float step{1.f};
0046   for (int i = 0; i < 200; ++i) {
0047     for (int j = 0; j < 200; ++j) {
0048       const float x{start + static_cast<float>(i) * step};
0049       const float y{start + static_cast<float>(j) * step};
0050 
0051       EXPECT_EQ(v.at(x, y)[0], 2.f);
0052       EXPECT_EQ(v.at(x, y)[1], 5.f);
0053     }
0054   }
0055 }
0056 
0057 GTEST_TEST(Covfie, ConstantField3D) {
0058   using field_t =
0059       covfie::field<covfie::backend::constant<covfie::vector::float3,
0060                                               covfie::vector::float3>>;
0061 
0062   field_t f(covfie::make_parameter_pack(
0063       field_t::backend_t::configuration_t{2.f, 5.f, -4.f}));
0064   field_t::view_t v(f);
0065 
0066   constexpr float start{-10.f};
0067   constexpr float step{1.f};
0068   for (int i = 0; i < 20; ++i) {
0069     for (int j = 0; j < 20; ++j) {
0070       for (int k = 0; k < 20; ++k) {
0071         const float x{start + static_cast<float>(i) * step};
0072         const float y{start + static_cast<float>(j) * step};
0073         const float z{start + static_cast<float>(k) * step};
0074 
0075         EXPECT_EQ(v.at(x, y, z)[0], 2.f);
0076         EXPECT_EQ(v.at(x, y, z)[1], 5.f);
0077         EXPECT_EQ(v.at(x, y, z)[2], -4.f);
0078       }
0079     }
0080   }
0081 }