@@ -50,6 +50,7 @@ class CreateAPRTest : public ::testing::Test {
5050
5151};
5252
53+
5354class CreateSmallSphereTest : public CreateAPRTest
5455{
5556public:
@@ -1490,6 +1491,67 @@ bool test_apr_tree(TestData& test_data) {
14901491 return success;
14911492}
14921493
1494+ template <typename T>
1495+ bool check_particle_type (std::string& type_check){
1496+
1497+ // Test Basic IO
1498+ std::string file_name = " read_write_test.apr" ;
1499+
1500+ // First write a file
1501+ APRFile writeFile;
1502+ writeFile.open (file_name," WRITE" );
1503+
1504+ const size_t parts_num = 10 ;
1505+
1506+ ParticleData<T> part_write;
1507+ part_write.init (parts_num);
1508+
1509+ writeFile.write_particles (" part_write" ,part_write);
1510+
1511+ writeFile.close ();
1512+
1513+ // First read a file
1514+ APRFile readFile;
1515+
1516+ bool success = true ;
1517+
1518+ readFile.open (file_name," READ" );
1519+
1520+ std::string read_type = readFile.get_particle_type (" part_write" );
1521+
1522+ readFile.close ();
1523+
1524+ if (type_check != read_type){
1525+ success = false ;
1526+ }
1527+
1528+ return success;
1529+
1530+ }
1531+
1532+
1533+
1534+ bool test_apr_file_particle_type (){
1535+
1536+ std::vector<std::string> type_list = {" uint16" , " float" , " uint8" , " uint32" , " uint64" , " double" , " int8" , " int16" , " int32" , " int64" };
1537+
1538+ bool success = true ;
1539+
1540+ success = success & check_particle_type<uint16_t >(type_list[0 ]);
1541+ success = success & check_particle_type<float >(type_list[1 ]);
1542+ success = success & check_particle_type<uint8_t >(type_list[2 ]);
1543+ success = success & check_particle_type<uint32_t >(type_list[3 ]);
1544+ success = success & check_particle_type<uint64_t >(type_list[4 ]);
1545+ success = success & check_particle_type<double >(type_list[5 ]);
1546+ success = success & check_particle_type<int8_t >(type_list[6 ]);
1547+ success = success & check_particle_type<int16_t >(type_list[7 ]);
1548+ success = success & check_particle_type<int32_t >(type_list[8 ]);
1549+ success = success & check_particle_type<int64_t >(type_list[9 ]);
1550+
1551+ return success;
1552+ }
1553+
1554+
14931555bool test_apr_file (TestData& test_data){
14941556
14951557
@@ -4220,7 +4282,9 @@ TEST_F(CreateDiffDimsSphereTest, APR_FILTER) {
42204282 ASSERT_TRUE (test_convolve_pencil (test_data, true , {1 , 1 , 13 }));
42214283}
42224284
4223-
4285+ TEST_F (CreateAPRTest, READ_PARTICLE_TYPE){
4286+ ASSERT_TRUE (test_apr_file_particle_type ());
4287+ }
42244288
42254289int main (int argc, char **argv) {
42264290
0 commit comments