@@ -3217,6 +3217,59 @@ TEST_CASE( "serial_iterator", "[serial][adios2]" )
32173217 }
32183218}
32193219
3220+ void
3221+ stepBasedSingleIteration ( std::string const & file )
3222+ {
3223+ std::string config = R"END(
3224+ {
3225+ "adios2":
3226+ {
3227+ "new_attribute_layout": true,
3228+ "engine":
3229+ {
3230+ "usesteps": true
3231+ }
3232+ }
3233+ })END" ;
3234+ constexpr Extent::value_type extent = 1000 ;
3235+ {
3236+ Series writeSeries ( file, Access::CREATE, config );
3237+ writeSeries.setIterationEncoding ( IterationEncoding::stepBased );
3238+ auto iterations = writeSeries.writeIterations ();
3239+ auto iteration = writeSeries.iterations [ 0 ];
3240+ auto E_x = iteration.meshes [ " E" ][ " x" ];
3241+ E_x.resetDataset (
3242+ openPMD::Dataset ( openPMD::Datatype::INT, { 1000 } ) );
3243+ std::vector< int > data ( 1000 , 0 );
3244+ std::iota ( data.begin (), data.end (), 0 );
3245+ E_x.storeChunk ( data, { 0 }, { 1000 } );
3246+ writeSeries.flush ();
3247+ }
3248+
3249+ {
3250+ Series readSeries ( file, Access::READ_ONLY, config );
3251+
3252+ auto E_x = readSeries.iterations [ 0 ].meshes [ " E" ][ " x" ];
3253+ REQUIRE ( E_x.getDimensionality () == 1 );
3254+ REQUIRE ( E_x.getExtent ()[ 0 ] == extent );
3255+ auto chunk = E_x.loadChunk < int >( { 0 }, { extent } );
3256+ readSeries.flush ();
3257+ for ( size_t i = 0 ; i < extent; ++i )
3258+ {
3259+ REQUIRE ( chunk.get ()[ i ] == i );
3260+ }
3261+ }
3262+ }
3263+
3264+ TEST_CASE ( " stepBasedSingleIteration" , " [serial][adios2]" )
3265+ {
3266+ stepBasedSingleIteration (" ../samples/stepBasedSingleIteration.bp" );
3267+ // for( auto const & t : getFileExtensions() )
3268+ // {
3269+ // stepBasedSingleIteration( "../samples/stepBasedSingleIteration." + t );
3270+ // }
3271+ }
3272+
32203273#if openPMD_HAVE_ADIOS2
32213274void
32223275stepBasedSeries ( std::string const & file )
0 commit comments