Merge branch 'develop' into wrap/pybind-stl
						commit
						c97b9a3bc6
					
				|  | @ -19,16 +19,16 @@ jobs: | |||
|         # Github Actions requires a single row to be added to the build matrix. | ||||
|         # See https://help.github.com/en/articles/workflow-syntax-for-github-actions. | ||||
|         name: [ | ||||
|           macOS-10.15-xcode-11.3.1, | ||||
|           macos-11-xcode-13.4.1, | ||||
|         ] | ||||
| 
 | ||||
|         build_type: [Debug, Release] | ||||
|         build_unstable: [ON] | ||||
|         include: | ||||
|           - name: macOS-10.15-xcode-11.3.1 | ||||
|             os: macOS-10.15 | ||||
|           - name: macos-11-xcode-13.4.1 | ||||
|             os: macos-11 | ||||
|             compiler: xcode | ||||
|             version: "11.3.1" | ||||
|             version: "13.4.1" | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|  | @ -43,7 +43,7 @@ jobs: | |||
|             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | ||||
|             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | ||||
|           else | ||||
|             sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app | ||||
|             sudo xcode-select -switch /Applications/Xcode.app | ||||
|             echo "CC=clang" >> $GITHUB_ENV | ||||
|             echo "CXX=clang++" >> $GITHUB_ENV | ||||
|           fi | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ jobs: | |||
|           ubuntu-18.04-gcc-5, | ||||
|           ubuntu-18.04-gcc-9, | ||||
|           ubuntu-18.04-clang-9, | ||||
|           macOS-10.15-xcode-11.3.1, | ||||
|           macOS-11-xcode-13.4.1, | ||||
|           ubuntu-18.04-gcc-5-tbb, | ||||
|         ] | ||||
| 
 | ||||
|  | @ -52,10 +52,10 @@ jobs: | |||
|             build_type: Debug | ||||
|             python_version: "3" | ||||
| 
 | ||||
|           - name: macOS-10.15-xcode-11.3.1 | ||||
|             os: macOS-10.15 | ||||
|           - name: macOS-11-xcode-13.4.1 | ||||
|             os: macOS-11 | ||||
|             compiler: xcode | ||||
|             version: "11.3.1" | ||||
|             version: "13.4.1" | ||||
| 
 | ||||
|           - name: ubuntu-18.04-gcc-5-tbb | ||||
|             os: ubuntu-18.04 | ||||
|  | @ -103,7 +103,7 @@ jobs: | |||
|             echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV | ||||
|             echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV | ||||
|           else | ||||
|             sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app | ||||
|             sudo xcode-select -switch /Applications/Xcode.app | ||||
|             echo "CC=clang" >> $GITHUB_ENV | ||||
|             echo "CXX=clang++" >> $GITHUB_ENV | ||||
|           fi | ||||
|  | @ -112,6 +112,11 @@ jobs: | |||
|         run: | | ||||
|           echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV | ||||
|           echo "GTSAM Uses TBB" | ||||
|       - name: Set Swap Space | ||||
|         if: runner.os == 'Linux' | ||||
|         uses: pierotofy/set-swap-space@master | ||||
|         with: | ||||
|           swap-size-gb: 6 | ||||
|       - name: Build (Linux) | ||||
|         if: runner.os == 'Linux' | ||||
|         run: | | ||||
|  |  | |||
|  | @ -113,6 +113,7 @@ private: | |||
|   template<class Archive> | ||||
|   void load(Archive& ar, const unsigned int /*version*/) | ||||
|   { | ||||
|     this->clear(); | ||||
|     // Load into STL container and then fill our map
 | ||||
|     FastVector<std::pair<KEY, VALUE> > map; | ||||
|     ar & BOOST_SERIALIZATION_NVP(map); | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ | |||
| 
 | ||||
| #include <gtsam/inference/Key.h> | ||||
| 
 | ||||
| #include <gtsam/base/ConcurrentMap.h> | ||||
| #include <gtsam/base/Matrix.h> | ||||
| #include <gtsam/base/MatrixSerialization.h> | ||||
| #include <gtsam/base/Vector.h> | ||||
|  | @ -106,6 +107,39 @@ TEST (Serialization, matrix_vector) { | |||
|   EXPECT(equalityBinary<Matrix>((Matrix(2, 2) << 1.0, 2.0, 3.0, 4.0).finished())); | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| TEST (Serialization, ConcurrentMap) { | ||||
| 
 | ||||
|   ConcurrentMap<int, std::string> map; | ||||
| 
 | ||||
|   map.insert(make_pair(1, "apple")); | ||||
|   map.insert(make_pair(2, "banana")); | ||||
| 
 | ||||
|   std::string binaryPath = "saved_map.dat"; | ||||
|     try { | ||||
|     std::ofstream outputStream(binaryPath); | ||||
|     boost::archive::binary_oarchive outputArchive(outputStream); | ||||
|     outputArchive << map; | ||||
|   } catch(...) { | ||||
|     EXPECT(false); | ||||
|   } | ||||
| 
 | ||||
|   // Verify that the existing map contents are replaced by the archive data
 | ||||
|   ConcurrentMap<int, std::string> mapFromDisk; | ||||
|   mapFromDisk.insert(make_pair(3, "clam")); | ||||
|   EXPECT(mapFromDisk.exists(3)); | ||||
|   try { | ||||
|     std::ifstream ifs(binaryPath); | ||||
|     boost::archive::binary_iarchive inputArchive(ifs); | ||||
|     inputArchive >> mapFromDisk; | ||||
|   } catch(...) { | ||||
|     EXPECT(false); | ||||
|   } | ||||
|   EXPECT(mapFromDisk.exists(1)); | ||||
|   EXPECT(mapFromDisk.exists(2)); | ||||
|   EXPECT(!mapFromDisk.exists(3)); | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -87,7 +87,8 @@ copy_directory("${CMAKE_CURRENT_SOURCE_DIR}/gtsam" | |||
| # Hack to get python test and util files copied every time they are modified | ||||
| file(GLOB GTSAM_PYTHON_TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/tests/*.py") | ||||
| foreach(test_file ${GTSAM_PYTHON_TEST_FILES}) | ||||
|         configure_file(${test_file} "${GTSAM_MODULE_PATH}/tests/${test_file}" COPYONLY) | ||||
|         get_filename_component(test_file_name ${test_file} NAME) | ||||
|         configure_file(${test_file} "${GTSAM_MODULE_PATH}/tests/${test_file_name}" COPYONLY) | ||||
| endforeach() | ||||
| file(GLOB GTSAM_PYTHON_UTIL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/utils/*.py") | ||||
| foreach(util_file ${GTSAM_PYTHON_UTIL_FILES}) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue