Skip to content

feat(TemporalAttributes): add possibility to time attributes - #1337

Merged
BotellaA merged 4 commits into
nextfrom
feat/add_temporal_attributes
Oct 2, 2026
Merged

BotellaA merged 4 commits into
nextfrom
feat/add_temporal_attributes

Conversation

@BenPinet

@BenPinet BenPinet commented Oct 1, 2026

Copy link
Copy Markdown
Member

No description provided.

@BenPinet
BenPinet requested a review from BotellaA October 1, 2026 12:34
Comment thread include/geode/basic/attribute_time_series.hpp Outdated
Comment thread include/geode/basic/attribute_utils.hpp Outdated
Comment thread src/geode/basic/attribute_manager.cpp
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v21.1.8) reports: 254 concern(s)
  • bindings/python/src/basic/attribute.cpp:34:10: warning: [misc-use-internal-linkage]

    function 'python_attribute_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       34 |     void python_attribute_class(
          |          ^
          |     static 
  • bindings/python/src/basic/attribute.cpp:67:10: warning: [misc-use-internal-linkage]

    function 'python_attribute_values_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       67 |     void python_attribute_values_class(
          |          ^
          |     static 
  • bindings/python/src/basic/attribute.cpp:79:10: warning: [misc-use-internal-linkage]

    function 'define_attributes' can be made static or moved into an anonymous namespace to enforce internal linkage

       79 |     void define_attributes( pybind11::module& module )
          |          ^
          |     static 
  • bindings/python/src/basic/attribute_manager.cpp:37:10: warning: [cppcoreguidelines-avoid-non-const-global-variables]

    variable 'python_attribute_class' is non-const and globally accessible, consider making it const

       37 |     void python_attribute_class( pybind11::class_< AttributeManager >& manager,
          |          ^
  • bindings/python/src/basic/attribute_manager.cpp:37:10: warning: [misc-use-internal-linkage]

    variable 'python_attribute_class' can be made static or moved into an anonymous namespace to enforce internal linkage

       37 |     void python_attribute_class( pybind11::class_< AttributeManager >& manager,
          |          ^
          |     static 
  • bindings/python/src/basic/attribute_manager.cpp:118:10: warning: [misc-use-internal-linkage]

    function 'python_attribute_time_series_class' can be made static or moved into an anonymous namespace to enforce internal linkage

      118 |     void python_attribute_time_series_class(
          |          ^
          |     static 
  • bindings/python/src/basic/attribute_manager.cpp:135:10: warning: [misc-use-internal-linkage]

    function 'define_attribute_manager' can be made static or moved into an anonymous namespace to enforce internal linkage

      135 |     void define_attribute_manager( pybind11::module& module )
          |          ^
          |     static 
  • include/geode/basic/attribute_utils.hpp:83:37: warning: [readability-redundant-member-init]

    initializer for member 'time' is redundant

       83 |         std::optional< double > time{};
          |                                     ^~
  • include/geode/basic/attribute_utils.hpp:164:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      164 | #define IMPLICIT_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                        \
          |         ^
  • include/geode/basic/attribute_utils.hpp:198:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION' used; consider a 'constexpr' template function

      198 | #define IMPLICIT_ARRAY_ATTRIBUTE_LINEAR_INTERPOLATION( Type )                  \
          |         ^
  • include/geode/basic/attribute_utils.hpp:277:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      277 | #define IMPLICIT_GENERIC_ATTRIBUTE_CONVERSION( Type )                          \
          |         ^
  • include/geode/basic/attribute_utils.hpp:313:9: warning: [cppcoreguidelines-macro-usage]

    function-like macro 'IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION' used; consider a 'constexpr' template function

      313 | #define IMPLICIT_ARRAY_GENERIC_ATTRIBUTE_CONVERSION( Type )                    \
          |         ^
  • src/geode/basic/attribute_manager.cpp:322:21: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      322 |                     step_time.value() != time, nullptr,
          |                     ^
  • tests/basic/test-attribute.cpp:50:5: warning: [modernize-use-nodiscard]

    function 'generic_value' should be marked [[nodiscard]]

       50 |     float generic_value() const
          |     ^
          |     [[nodiscard]] 
  • tests/basic/test-attribute.cpp:111:6: warning: [misc-use-internal-linkage]

    function 'test_constant_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      111 | void test_constant_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:118:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      118 |     geode::AttributeValues< bool > attribute_values;
          |     ^                                              
          |                                                    {}
  • tests/basic/test-attribute.cpp:129:48: warning: [readability-simplify-boolean-expr]

    redundant boolean literal supplied to boolean operator

      129 |         constant_attribute->default_value() == true, "Wrong default value" );
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
          |         constant_attribute->default_value()
  • tests/basic/test-attribute.cpp:140:28: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      140 |         !attribute->value( 12 ), "Should be equal to false" );
          |                            ^
  • tests/basic/test-attribute.cpp:143:6: warning: [misc-use-internal-linkage]

    function 'test_foo_constant_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      143 | void test_foo_constant_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:158:23: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      158 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:161:48: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      161 |         constant_attribute->value().double_ == 12.4,
          |                                                ^
  • tests/basic/test-attribute.cpp:165:6: warning: [misc-use-internal-linkage]

    function 'test_foo_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      165 | void test_foo_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:194:23: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      194 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:199:51: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      199 |         variable_attribute->value( 3 ).double_ == 12.4,
          |                                                   ^
  • tests/basic/test-attribute.cpp:203:6: warning: [misc-use-internal-linkage]

    function 'test_int_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      203 | void test_int_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:210:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      210 |     geode::AttributeValues< int > attribute_values;
          |     ^                                             
          |                                                   {}
  • tests/basic/test-attribute.cpp:211:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      211 |     attribute_values.default_value = 12;
          |                                      ^
  • tests/basic/test-attribute.cpp:212:33: warning: [bugprone-narrowing-conversions]

    narrowing conversion from constant value 4294967295 (0xFFFFFFFF) of type 'index_t' (aka 'unsigned int') to signed type 'int' is implementation-defined

      212 |     attribute_values.no_value = geode::NO_ID;
          |                                 ^
  • tests/basic/test-attribute.cpp:218:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      218 |         variable_attribute->default_values().default_value == 12,
          |                                                               ^
  • tests/basic/test-attribute.cpp:226:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      226 |     geode::OpenGeodeBasicException::test( attribute->value( 6 ) == 12,
          |                                                             ^
  • tests/basic/test-attribute.cpp:226:68: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      226 |     geode::OpenGeodeBasicException::test( attribute->value( 6 ) == 12,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:229:39: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      229 |     variable_attribute->set_value( 3, 5 );
          |                                       ^
  • tests/basic/test-attribute.cpp:230:68: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      230 |     geode::OpenGeodeBasicException::test( attribute->value( 3 ) == 5,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:234:13: warning: [misc-use-internal-linkage]

    function 'test_copy_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      234 | geode::uuid test_copy_attribute(
          |             ^
          | static 
  • tests/basic/test-attribute.cpp:253:6: warning: [misc-use-internal-linkage]

    function 'test_foo_sparse_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      253 | void test_foo_sparse_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:268:23: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      268 |         foo.double_ = 12.4;
          |                       ^
  • tests/basic/test-attribute.cpp:276:49: warning: [cppcoreguidelines-avoid-magic-numbers]

    12.4 is a magic number; consider replacing it with a named constant

      276 |         sparse_attribute->value( 3 ).double_ == 12.4,
          |                                                 ^
  • tests/basic/test-attribute.cpp:283:6: warning: [misc-use-internal-linkage]

    function 'test_double_sparse_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      283 | void test_double_sparse_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:290:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      290 |     geode::AttributeValues< double > attribute_values;
          |     ^                                                
          |                                                      {}
  • tests/basic/test-attribute.cpp:291:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      291 |     attribute_values.default_value = 12.;
          |                                      ^
  • tests/basic/test-attribute.cpp:299:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      299 |         sparse_attribute->default_values().default_value == 12,
          |                                                             ^
  • tests/basic/test-attribute.cpp:302:34: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      302 |     sparse_attribute->set_value( 7, 7 );
          |                                  ^
  • tests/basic/test-attribute.cpp:302:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      302 |     sparse_attribute->set_value( 7, 7 );
          |                                     ^
  • tests/basic/test-attribute.cpp:304:49: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      304 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                 ^
  • tests/basic/test-attribute.cpp:304:56: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.5 is a magic number; consider replacing it with a named constant

      304 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                        ^
  • tests/basic/test-attribute.cpp:304:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.3 is a magic number; consider replacing it with a named constant

      304 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                             ^
  • tests/basic/test-attribute.cpp:312:34: warning: [cppcoreguidelines-avoid-magic-numbers]

    8.1 is a magic number; consider replacing it with a named constant

      312 |         attribute->value( 4 ) == 8.1, "Should be equal to 8.1" );
          |                                  ^
  • tests/basic/test-attribute.cpp:314:27: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      314 |         attribute->value( 6 ) == 12, "Should be equal to 12" );
          |                           ^
  • tests/basic/test-attribute.cpp:314:34: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      314 |         attribute->value( 6 ) == 12, "Should be equal to 12" );
          |                                  ^
  • tests/basic/test-attribute.cpp:316:27: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      316 |         attribute->value( 7 ) == 7, "Should be equal to 7" );
          |                           ^
  • tests/basic/test-attribute.cpp:316:34: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      316 |         attribute->value( 7 ) == 7, "Should be equal to 7" );
          |                                  ^
  • tests/basic/test-attribute.cpp:318:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      318 |     sparse_attribute->set_value( 3, 5 );
          |                                     ^
  • tests/basic/test-attribute.cpp:320:34: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      320 |         attribute->value( 3 ) == 5, "Should be equal to 5" );
          |                                  ^
  • tests/basic/test-attribute.cpp:323:6: warning: [misc-use-internal-linkage]

    function 'test_double_array_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      323 | void test_double_array_attribute( geode::AttributeManager& manager )
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:329:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      329 |     geode::AttributeValues< std::array< double, 3 > > attribute_values;
          |     ^                                                                 
          |                                                                       {}
  • tests/basic/test-attribute.cpp:330:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      330 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                          ^
  • tests/basic/test-attribute.cpp:330:47: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      330 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                               ^
  • tests/basic/test-attribute.cpp:330:52: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      330 |     attribute_values.default_value = { { 10., 11., 12. } };
          |                                                    ^
  • tests/basic/test-attribute.cpp:339:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      339 |         array_attribute->default_values().default_value[0] == 10.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:342:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      342 |         array_attribute->default_values().default_value[1] == 11.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:345:63: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      345 |         array_attribute->default_values().default_value[2] == 12.,
          |                                                               ^
  • tests/basic/test-attribute.cpp:347:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      347 |     array_attribute->set_value( 3, { { 1., 2., 3. } } );
          |                                            ^
  • tests/basic/test-attribute.cpp:347:48: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      347 |     array_attribute->set_value( 3, { { 1., 2., 3. } } );
          |                                                ^
  • tests/basic/test-attribute.cpp:348:33: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      348 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                 ^
  • tests/basic/test-attribute.cpp:348:40: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      348 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                        ^
  • tests/basic/test-attribute.cpp:348:44: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      348 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                            ^
  • tests/basic/test-attribute.cpp:348:48: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      348 |     array_attribute->set_value( 7, { { 2., 5., 7. } } );
          |                                                ^
  • tests/basic/test-attribute.cpp:350:49: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      350 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                 ^
  • tests/basic/test-attribute.cpp:350:56: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.5 is a magic number; consider replacing it with a named constant

      350 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                        ^
  • tests/basic/test-attribute.cpp:350:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    0.3 is a magic number; consider replacing it with a named constant

      350 |     manager.interpolate_attribute_value( { { 1, 7 }, { 0.5, 0.3 } }, 4 );
          |                                                             ^
  • tests/basic/test-attribute.cpp:357:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      357 |     geode::OpenGeodeBasicException::test( attribute->value( 2 )[1] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:359:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      359 |     geode::OpenGeodeBasicException::test( attribute->value( 2 )[2] == 3.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:363:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      363 |     geode::OpenGeodeBasicException::test( attribute->value( 3 )[1] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:365:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      365 |     geode::OpenGeodeBasicException::test( attribute->value( 3 )[2] == 3.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:367:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    5.6 is a magic number; consider replacing it with a named constant

      367 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[0] == 5.6,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:369:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      369 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[1] == 7.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:371:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    8.1 is a magic number; consider replacing it with a named constant

      371 |     geode::OpenGeodeBasicException::test( attribute->value( 4 )[2] == 8.1,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:373:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      373 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[0] == 10.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:373:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      373 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[0] == 10.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:374:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      374 |         "Value [6,0] Should be equal to 10., not ", attribute->value( 6 )[0] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:375:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      375 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[1] == 11.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:375:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      375 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[1] == 11.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:376:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      376 |         "Value [6,1] Should be equal to 11., not ", attribute->value( 6 )[1] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:377:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      377 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[2] == 12.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:377:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      377 |     geode::OpenGeodeBasicException::test( attribute->value( 6 )[2] == 12.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:378:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      378 |         "Value [6,2] Should be equal to 12., not ", attribute->value( 6 )[2] );
          |                                                                       ^
  • tests/basic/test-attribute.cpp:379:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      379 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[0] == 2.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:379:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      379 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[0] == 2.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:380:70: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      380 |         "Value [7,0] Should be equal to 2., not ", attribute->value( 7 )[0] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:381:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      381 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[1] == 5.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:381:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      381 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[1] == 5.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:382:70: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      382 |         "Value [7,1] Should be equal to 5., not ", attribute->value( 7 )[1] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:383:61: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      383 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[2] == 7.,
          |                                                             ^
  • tests/basic/test-attribute.cpp:383:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      383 |     geode::OpenGeodeBasicException::test( attribute->value( 7 )[2] == 7.,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:384:70: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      384 |         "Value [7,2] Should be equal to 7., not ", attribute->value( 7 )[2] );
          |                                                                      ^
  • tests/basic/test-attribute.cpp:386:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      386 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                      ^
  • tests/basic/test-attribute.cpp:386:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      386 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                          ^
  • tests/basic/test-attribute.cpp:386:46: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      386 |     array_attribute->set_value( 3, { 2., 5., 5. } );
          |                                              ^
  • tests/basic/test-attribute.cpp:388:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      388 |         attribute->value( 3 )[0] == 2., "Should be equal to 2." );
          |                                     ^
  • tests/basic/test-attribute.cpp:390:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      390 |         attribute->value( 3 )[1] == 5., "Should be equal to 5." );
          |                                     ^
  • tests/basic/test-attribute.cpp:392:37: warning: [cppcoreguidelines-avoid-magic-numbers]

    1. is a magic number; consider replacing it with a named constant
      392 |         attribute->value( 3 )[2] == 5., "Should be equal to 5." );
          |                                     ^
  • tests/basic/test-attribute.cpp:395:6: warning: [misc-use-internal-linkage]

    function 'test_bool_variable_attribute' can be made static or moved into an anonymous namespace to enforce internal linkage

      395 | void test_bool_variable_attribute(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:402:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      402 |     geode::AttributeValues< bool > attribute_values;
          |     ^                                              
          |                                                    {}
  • tests/basic/test-attribute.cpp:412:63: warning: [readability-simplify-boolean-expr]

    redundant boolean literal supplied to boolean operator

      412 |         variable_attribute->default_values().default_value == false,
          |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
          |         !variable_attribute->default_values().default_value
  • tests/basic/test-attribute.cpp:426:6: warning: [misc-use-internal-linkage]

    function 'managers_have_same_attributes' can be made static or moved into an anonymous namespace to enforce internal linkage

      426 | bool managers_have_same_attributes( const geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:454:6: warning: [misc-use-internal-linkage]

    function 'check_one_attribute_values' can be made static or moved into an anonymous namespace to enforce internal linkage

      454 | void check_one_attribute_values( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:454:34: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'check_one_attribute_values' of similar type ('geode::AttributeManager &') are easily swapped by mistake

      454 | void check_one_attribute_values( geode::AttributeManager& manager,
          |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      455 |     geode::AttributeManager& reloaded_manager,
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:454:59: note: the first parameter in the range is 'manager'
      454 | void check_one_attribute_values( geode::AttributeManager& manager,
          |                                                           ^~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:455:30: note: the last parameter in the range is 'reloaded_manager'
      455 |     geode::AttributeManager& reloaded_manager,
          |                              ^~~~~~~~~~~~~~~~
  • tests/basic/test-attribute.cpp:470:6: warning: [misc-use-internal-linkage]

    function 'check_attribute_values' can be made static or moved into an anonymous namespace to enforce internal linkage

      470 | void check_attribute_values( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:472:36: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      472 |     const std::array< geode::uuid, 7 >& attribute_to_check )
          |                                    ^
  • tests/basic/test-attribute.cpp:485:55: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      485 |         manager, reloaded_manager, attribute_to_check[5] );
          |                                                       ^
  • tests/basic/test-attribute.cpp:487:55: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      487 |         manager, reloaded_manager, attribute_to_check[6] );
          |                                                       ^
  • tests/basic/test-attribute.cpp:490:6: warning: [misc-use-internal-linkage]

    function 'test_serialize_manager' can be made static or moved into an anonymous namespace to enforce internal linkage

      490 | void test_serialize_manager( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:491:36: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      491 |     const std::array< geode::uuid, 7 >& attribute_to_check )
          |                                    ^
  • tests/basic/test-attribute.cpp:493:5: warning: [llvm-qualified-auto]

    'const auto filename' can be declared as 'const auto *const filename'

      493 |     const auto filename = "manager.out";
          |     ^~~~~~~~~~
          |     const auto *const 
  • tests/basic/test-attribute.cpp:510:57: warning: [cppcoreguidelines-avoid-magic-numbers]

    30 is a magic number; consider replacing it with a named constant

      510 |     geode::register_attribute_type< std::array< double, 30 >,
          |                                                         ^
  • tests/basic/test-attribute.cpp:539:6: warning: [misc-use-internal-linkage]

    function 'test_attribute_types' can be made static or moved into an anonymous namespace to enforce internal linkage

      539 | void test_attribute_types( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:552:6: warning: [misc-use-internal-linkage]

    function 'test_attribute_names' can be made static or moved into an anonymous namespace to enforce internal linkage

      552 | void test_attribute_names( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:556:9: warning: [bugprone-unchecked-optional-access]

    unchecked access to optional value

      556 |         manager.find_attribute< geode::VariableAttribute, bool >(
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      557 |                    bool_variable_attribute_id )
          |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      558 |                 ->name()
          |                 ~~~~~~~~
  • tests/basic/test-attribute.cpp:564:6: warning: [misc-use-internal-linkage]

    function 'test_number_of_attributes' can be made static or moved into an anonymous namespace to enforce internal linkage

      564 | void test_number_of_attributes(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:565:54: warning: [readability-identifier-length]

    parameter name 'nb' is too short, expected at least 3 characters

      565 |     geode::AttributeManager& manager, geode::index_t nb )
          |                                                      ^
  • tests/basic/test-attribute.cpp:571:6: warning: [misc-use-internal-linkage]

    function 'test_delete_attribute_elements' can be made static or moved into an anonymous namespace to enforce internal linkage

      571 | void test_delete_attribute_elements( geode::AttributeManager& manager )
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:575:15: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      575 |     to_delete[5] = true;
          |               ^
  • tests/basic/test-attribute.cpp:582:6: warning: [misc-use-internal-linkage]

    function 'test_sparse_attribute_after_element_deletion' can be made static or moved into an anonymous namespace to enforce internal linkage

      582 | void test_sparse_attribute_after_element_deletion(
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:587:75: warning: [cppcoreguidelines-avoid-magic-numbers]

    12 is a magic number; consider replacing it with a named constant

      587 |     geode::OpenGeodeBasicException::test( sparse_attribute->value( 0 ) == 12,
          |                                                                           ^
  • tests/basic/test-attribute.cpp:591:68: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      591 |     geode::OpenGeodeBasicException::test( sparse_attribute->value( 5 ) == 8.1,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:591:75: warning: [cppcoreguidelines-avoid-magic-numbers]

    8.1 is a magic number; consider replacing it with a named constant

      591 |     geode::OpenGeodeBasicException::test( sparse_attribute->value( 5 ) == 8.1,
          |                                                                           ^
  • tests/basic/test-attribute.cpp:593:68: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      593 |     geode::OpenGeodeBasicException::test( sparse_attribute->value( 7 ) == 7,
          |                                                                    ^
  • tests/basic/test-attribute.cpp:593:75: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      593 |     geode::OpenGeodeBasicException::test( sparse_attribute->value( 7 ) == 7,
          |                                                                           ^
  • tests/basic/test-attribute.cpp:597:13: warning: [misc-use-internal-linkage]

    function 'test_generic_value' can be made static or moved into an anonymous namespace to enforce internal linkage

      597 | geode::uuid test_generic_value( geode::AttributeManager& manager,
          |             ^
          | static 
  • tests/basic/test-attribute.cpp:598:5: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'test_generic_value' of similar type ('const geode::uuid &') are easily swapped by mistake

      598 |     const geode::uuid& foo_sparse_id,
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      599 |     const geode::uuid& double_attribute_id )
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:598:24: note: the first parameter in the range is 'foo_sparse_id'
      598 |     const geode::uuid& foo_sparse_id,
          |                        ^~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:599:24: note: the last parameter in the range is 'double_attribute_id'
      599 |     const geode::uuid& double_attribute_id )
          |                        ^~~~~~~~~~~~~~~~~~~
  • tests/basic/test-attribute.cpp:605:75: warning: [cppcoreguidelines-avoid-magic-numbers]

    15.4f is a magic number; consider replacing it with a named constant

      605 |     geode::OpenGeodeBasicException::test( foo_attr->generic_value( 3 ) == 15.4f,
          |                                                                           ^
  • tests/basic/test-attribute.cpp:605:75: warning: [hicpp-uppercase-literal-suffix]

    floating point literal has suffix 'f', which is not uppercase

      605 |     geode::OpenGeodeBasicException::test( foo_attr->generic_value( 3 ) == 15.4f,
          |                                                                           ^   ~
          |                                                                               F
  • tests/basic/test-attribute.cpp:611:71: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      611 |     geode::OpenGeodeBasicException::test( double_attr->generic_value( 7 ) == 7,
          |                                                                       ^
  • tests/basic/test-attribute.cpp:611:78: warning: [cppcoreguidelines-avoid-magic-numbers]

    7 is a magic number; consider replacing it with a named constant

      611 |     geode::OpenGeodeBasicException::test( double_attr->generic_value( 7 ) == 7,
          |                                                                              ^
  • tests/basic/test-attribute.cpp:617:5: warning: [cppcoreguidelines-pro-type-member-init]

    uninitialized record type: 'attribute_values'

      617 |     geode::AttributeValues< std::array< double, 2 > > attribute_values;
          |     ^                                                                 
          |                                                                       {}
  • tests/basic/test-attribute.cpp:625:33: warning: [cppcoreguidelines-avoid-magic-numbers]

    3.1 is a magic number; consider replacing it with a named constant

      625 |     array_attr->set_value( 2, { 3.1, 1.3 } );
          |                                 ^
  • tests/basic/test-attribute.cpp:625:38: warning: [cppcoreguidelines-avoid-magic-numbers]

    1.3 is a magic number; consider replacing it with a named constant

      625 |     array_attr->set_value( 2, { 3.1, 1.3 } );
          |                                      ^
  • tests/basic/test-attribute.cpp:629:43: warning: [cppcoreguidelines-avoid-magic-numbers]

    3.1f is a magic number; consider replacing it with a named constant

      629 |         array_attr->generic_value( 2 ) == 3.1f,
          |                                           ^
  • tests/basic/test-attribute.cpp:629:43: warning: [hicpp-uppercase-literal-suffix]

    floating point literal has suffix 'f', which is not uppercase

      629 |         array_attr->generic_value( 2 ) == 3.1f,
          |                                           ^  ~
          |                                              F
  • tests/basic/test-attribute.cpp:632:51: warning: [cppcoreguidelines-avoid-magic-numbers]

    3.1f is a magic number; consider replacing it with a named constant

      632 |         array_attr->generic_item_value( 2, 0 ) == 3.1f,
          |                                                   ^
  • tests/basic/test-attribute.cpp:632:51: warning: [hicpp-uppercase-literal-suffix]

    floating point literal has suffix 'f', which is not uppercase

      632 |         array_attr->generic_item_value( 2, 0 ) == 3.1f,
          |                                                   ^  ~
          |                                                      F
  • tests/basic/test-attribute.cpp:636:51: warning: [cppcoreguidelines-avoid-magic-numbers]

    1.3f is a magic number; consider replacing it with a named constant

      636 |         array_attr->generic_item_value( 2, 1 ) == 1.3f,
          |                                                   ^
  • tests/basic/test-attribute.cpp:636:51: warning: [hicpp-uppercase-literal-suffix]

    floating point literal has suffix 'f', which is not uppercase

      636 |         array_attr->generic_item_value( 2, 1 ) == 1.3f,
          |                                                   ^  ~
          |                                                      F
  • tests/basic/test-attribute.cpp:642:6: warning: [misc-use-internal-linkage]

    function 'test_copy_manager' can be made static or moved into an anonymous namespace to enforce internal linkage

      642 | void test_copy_manager( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:646:41: warning: [cppcoreguidelines-avoid-magic-numbers]

    8 is a magic number; consider replacing it with a named constant

      646 |     test_number_of_attributes( manager, 8 );
          |                                         ^
  • tests/basic/test-attribute.cpp:648:23: warning: [cppcoreguidelines-avoid-magic-numbers]

    15 is a magic number; consider replacing it with a named constant

      648 |     manager2.reserve( 15 );
          |                       ^
  • tests/basic/test-attribute.cpp:650:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    8 is a magic number; consider replacing it with a named constant

      650 |     test_number_of_attributes( manager2, 8 );
          |                                          ^
  • tests/basic/test-attribute.cpp:654:6: warning: [misc-use-internal-linkage]

    function 'test_import_manager' can be made static or moved into an anonymous namespace to enforce internal linkage

      654 | void test_import_manager( geode::AttributeManager& manager,
          |      ^
          | static 
  • tests/basic/test-attribute.cpp:655:5: warning: [bugprone-easily-swappable-parameters]

    3 adjacent parameters of 'test_import_manager' of similar type ('const geode::uuid &') are easily swapped by mistake

      655 |     const geode::uuid& bool_variable_attribute_id,
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      656 |     const geode::uuid& array_double_attribute_id,
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      657 |     const geode::uuid& double_attribute_id )
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:655:24: note: the first parameter in the range is 'bool_variable_attribute_id'
      655 |     const geode::uuid& bool_variable_attribute_id,
          |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
    /__w/OpenGeode/OpenGeode/tests/basic/test-attribute.cpp:657:24: note: the last parameter in the range is 'double_attribute_id'
      657 |     const geode::uuid& double_attribute_id )
          |                        ^~~~~~~~~~~~~~~~~~~
  • tests/basic/test-attribute.cpp:665:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    8 is a magic number; consider replacing it with a named constant

      665 |     test_number_of_attributes( manager2, 8 );
          |                                          ^
  • tests/basic/test-attribute.cpp:674:42: warning: [cppcoreguidelines-avoid-magic-numbers]

    8 is a magic number; consider replacing it with a named constant

      674 |     test_number_of_attributes( manager3, 8 );
          |                                          ^

Have any feedback or feature suggestions? Share it here.

@BotellaA
BotellaA merged commit b7f16dc into next Oct 2, 2026
19 checks passed
@BotellaA
BotellaA deleted the feat/add_temporal_attributes branch October 2, 2026 14:07
@BotellaA

BotellaA commented Oct 2, 2026

Copy link
Copy Markdown
Member

🎉 This PR is included in version 18.3.0-rc.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@BotellaA

BotellaA commented Oct 3, 2026

Copy link
Copy Markdown
Member

🎉 This PR is included in version 18.3.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants