File indexing completed on 2026-05-27 07:24:19
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <covfie/core/backend/primitive/constant.hpp>
0011 #include <covfie/core/field.hpp>
0012 #include <covfie/core/field_view.hpp>
0013
0014
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 }