| 517 | } |
| 518 | |
| 519 | void test_import_manager( geode::AttributeManager& manager ) |
| 520 | { |
| 521 | const auto nb_elements = manager.nb_elements(); |
| 522 | geode::AttributeManager manager2; |
| 523 | std::vector< geode::index_t > old2new( nb_elements, geode::NO_ID ); |
| 524 | manager2.resize( 0 ); |
| 525 | manager2.import( manager, old2new ); |
| 526 | test_attribute_types( manager2 ); |
| 527 | test_number_of_attributes( manager2, 8 ); |
| 528 | |
| 529 | geode::AttributeManager manager3; |
| 530 | for( const auto i : geode::LRange( nb_elements - 2 ) ) |
| 531 | { |
| 532 | old2new[i] = nb_elements - 3 - i; |
| 533 | } |
| 534 | manager3.resize( nb_elements - 2 ); |
| 535 | manager3.import( manager, old2new ); |
| 536 | test_attribute_types( manager3 ); |
| 537 | test_number_of_attributes( manager3, 8 ); |
| 538 | auto array_attr = |
| 539 | manager.find_attribute< std::array< double, 2 > >( "array_double" ); |
| 540 | auto array_attr2 = |
| 541 | manager3.find_attribute< std::array< double, 2 > >( "array_double" ); |
| 542 | geode::OpenGeodeBasicException::test( |
| 543 | array_attr->value( 2 ) == array_attr2->value( 4 ), |
| 544 | "Error in attribute import value." ); |
| 545 | |
| 546 | geode::AttributeManager manager4; |
| 547 | for( const auto i : geode::LRange( nb_elements ) ) |
| 548 | { |
| 549 | old2new[i] = i; |
| 550 | } |
| 551 | manager4.resize( nb_elements ); |
| 552 | manager4.import( manager, old2new ); |
| 553 | test_attribute_types( manager4 ); |
| 554 | test_number_of_attributes( manager4, 8 ); |
| 555 | test_sparse_attribute_after_element_deletion( manager4 ); |
| 556 | } |
| 557 | |
| 558 | void test_multi_import_manager() |
| 559 | { |
no test coverage detected