MRPT  2.0.3
maps/src/maps/serializations_unittest.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #define MRPT_NO_WARN_BIG_HDR // Yes, we really want to include all classes.
11 #include <mrpt/maps.h>
14 
15 #include <CTraitsTest.h>
16 #include <gtest/gtest.h>
17 #include <mrpt/io/CMemoryStream.h>
19 
20 using namespace mrpt;
21 using namespace mrpt::maps;
22 using namespace mrpt::obs;
23 using namespace mrpt::io;
24 using namespace mrpt::serialization;
25 using namespace std;
26 
27 #define TEST_CLASS_MOVE_COPY_CTORS(_classname) \
28  template class mrpt::CTraitsTest<_classname>
29 
48 
49 // Create a set of classes, then serialize and deserialize to test possible
50 // bugs:
51 TEST(SerializeTestMaps, WriteReadToMem)
52 {
71 
72  for (auto& lstClasse : lstClasses)
73  {
74  try
75  {
76  CMemoryStream buf;
77  auto arch = mrpt::serialization::archiveFrom(buf);
78  {
80  lstClasse->createObject());
81  arch << *o;
82  o.reset();
83  }
84 
85  CSerializable::Ptr recons;
86  buf.Seek(0);
87  arch >> recons;
88  }
89  catch (const std::exception& e)
90  {
91  GTEST_FAIL() << "Exception during serialization test for class '"
92  << lstClasse->className << "':\n"
93  << e.what() << endl;
94  }
95  }
96 }
mrpt::io::CMemoryStream::Seek
uint64_t Seek(int64_t Offset, CStream::TSeekOrigin Origin=sFromBeginning) override
Introduces a pure virtual method for moving to a specified position in the streamed resource.
Definition: CMemoryStream.cpp:126
mrpt::maps::CGasConcentrationGridMap2D
CGasConcentrationGridMap2D represents a PDF of gas concentrations over a 2D area.
Definition: CGasConcentrationGridMap2D.h:32
mrpt::maps::CColouredPointsMap
A map of 2D/3D points with individual colours (RGB).
Definition: CColouredPointsMap.h:29
mrpt::rtti::TRuntimeClassId
A structure that holds runtime class type information.
Definition: CObject.h:31
mrpt::io
Definition: img/CImage.h:24
mrpt::serialization::CSerializable::Ptr
std::shared_ptr< CSerializable > Ptr
Definition: CSerializable.h:36
mrpt::maps::CWeightedPointsMap
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans.
Definition: CWeightedPointsMap.h:29
CMemoryStream.h
CObservationPointCloud.h
mrpt
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Definition: BaseAppDataSource.h:15
mrpt::obs
This namespace contains representation of robot actions and observations.
Definition: CParticleFilter.h:17
mrpt::maps::CWirelessPowerGridMap2D
CWirelessPowerGridMap2D represents a PDF of wifi concentrations over a 2D area.
Definition: CWirelessPowerGridMap2D.h:32
mrpt::maps::CPointsMapXYZI
A map of 3D points with reflectance/intensity (float).
Definition: CPointsMapXYZI.h:26
mrpt::maps::CHeightGridMap2D
Digital Elevation Model (DEM), a mesh or grid representation of a surface which keeps the estimated h...
Definition: CHeightGridMap2D.h:62
CObservationRotatingScan.h
mrpt::obs::CObservationRotatingScan
A CObservation-derived class for raw range data from a 2D or 3D rotating scanner.
Definition: CObservationRotatingScan.h:60
mrpt::ptr_cast::from
static CAST_TO::Ptr from(const CAST_FROM_PTR &ptr)
Definition: CObject.h:356
mrpt::obs::CSinCosLookUpTableFor2DScans
A smart look-up-table (LUT) of sin/cos values for 2D laser scans.
Definition: CSinCosLookUpTableFor2DScans.h:27
maps.h
mrpt::maps::CSimplePointsMap
A cloud of points in 2D or 3D, which can be built from a sequence of laser scans.
Definition: CSimplePointsMap.h:30
mrpt::io::CMemoryStream
This CStream derived class allow using a memory buffer as a CStream.
Definition: io/CMemoryStream.h:26
mrpt::serialization
Definition: aligned_serialization.h:13
mrpt::maps::CColouredOctoMap
A three-dimensional probabilistic occupancy grid, implemented as an octo-tree with the "octomap" C++ ...
Definition: CColouredOctoMap.h:36
mrpt::maps::COctoMap
A three-dimensional probabilistic occupancy grid, implemented as an octo-tree with the "octomap" C++ ...
Definition: COctoMap.h:40
mrpt::serialization::archiveFrom
CArchiveStreamBase< STREAM > archiveFrom(STREAM &s)
Helper function to create a templatized wrapper CArchive object for a: MRPT's CStream,...
Definition: CArchive.h:592
CLASS_ID
#define CLASS_ID(T)
Access to runtime class ID for a defined class name.
Definition: CObject.h:102
mrpt::maps::CBeaconMap
A class for storing a map of 3D probabilistic beacons, using a Montecarlo, Gaussian,...
Definition: CBeaconMap.h:43
mrpt::maps::CRandomFieldGridMap3D
CRandomFieldGridMap3D represents a 3D regular grid where each voxel is associated one real-valued pro...
Definition: CRandomFieldGridMap3D.h:72
mrpt::maps::CReflectivityGridMap2D
A 2D grid map representing the reflectivity of the environment (for example, measured with an IR prox...
Definition: CReflectivityGridMap2D.h:38
mrpt::maps::CBeacon
The class for storing individual "beacon landmarks" under a variety of 3D position PDF distributions.
Definition: CBeacon.h:35
lstClasses
const mrpt::rtti::TRuntimeClassId * lstClasses[]
Definition: CLogFileRecord_unittest.cpp:23
mrpt::maps::COccupancyGridMap3D
A 3D occupancy grid map with a regular, even distribution of voxels.
Definition: COccupancyGridMap3D.h:33
mrpt::maps::COccupancyGridMap2D
A class for storing an occupancy grid map.
Definition: COccupancyGridMap2D.h:53
mrpt::obs::CObservationPointCloud
An observation from any sensor that can be summarized as a pointcloud.
Definition: CObservationPointCloud.h:33
mrpt::maps
Definition: CBeacon.h:21
CArchive.h
TEST
TEST(SerializeTestMaps, WriteReadToMem)
Definition: maps/src/maps/serializations_unittest.cpp:51
TEST_CLASS_MOVE_COPY_CTORS
#define TEST_CLASS_MOVE_COPY_CTORS(_classname)
Definition: maps/src/maps/serializations_unittest.cpp:27



Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Thu May 21 21:53:32 UTC 2020