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.
|
# 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.
|
# See https://help.github.com/en/articles/workflow-syntax-for-github-actions.
|
||||||
name: [
|
name: [
|
||||||
macOS-10.15-xcode-11.3.1,
|
macos-11-xcode-13.4.1,
|
||||||
]
|
]
|
||||||
|
|
||||||
build_type: [Debug, Release]
|
build_type: [Debug, Release]
|
||||||
build_unstable: [ON]
|
build_unstable: [ON]
|
||||||
include:
|
include:
|
||||||
- name: macOS-10.15-xcode-11.3.1
|
- name: macos-11-xcode-13.4.1
|
||||||
os: macOS-10.15
|
os: macos-11
|
||||||
compiler: xcode
|
compiler: xcode
|
||||||
version: "11.3.1"
|
version: "13.4.1"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|
@ -43,7 +43,7 @@ jobs:
|
||||||
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
|
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
|
||||||
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
|
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app
|
sudo xcode-select -switch /Applications/Xcode.app
|
||||||
echo "CC=clang" >> $GITHUB_ENV
|
echo "CC=clang" >> $GITHUB_ENV
|
||||||
echo "CXX=clang++" >> $GITHUB_ENV
|
echo "CXX=clang++" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ jobs:
|
||||||
ubuntu-18.04-gcc-5,
|
ubuntu-18.04-gcc-5,
|
||||||
ubuntu-18.04-gcc-9,
|
ubuntu-18.04-gcc-9,
|
||||||
ubuntu-18.04-clang-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,
|
ubuntu-18.04-gcc-5-tbb,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -52,10 +52,10 @@ jobs:
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
python_version: "3"
|
python_version: "3"
|
||||||
|
|
||||||
- name: macOS-10.15-xcode-11.3.1
|
- name: macOS-11-xcode-13.4.1
|
||||||
os: macOS-10.15
|
os: macOS-11
|
||||||
compiler: xcode
|
compiler: xcode
|
||||||
version: "11.3.1"
|
version: "13.4.1"
|
||||||
|
|
||||||
- name: ubuntu-18.04-gcc-5-tbb
|
- name: ubuntu-18.04-gcc-5-tbb
|
||||||
os: ubuntu-18.04
|
os: ubuntu-18.04
|
||||||
|
|
@ -103,7 +103,7 @@ jobs:
|
||||||
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
|
echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV
|
||||||
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
|
echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
sudo xcode-select -switch /Applications/Xcode_${{ matrix.version }}.app
|
sudo xcode-select -switch /Applications/Xcode.app
|
||||||
echo "CC=clang" >> $GITHUB_ENV
|
echo "CC=clang" >> $GITHUB_ENV
|
||||||
echo "CXX=clang++" >> $GITHUB_ENV
|
echo "CXX=clang++" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
|
@ -112,6 +112,11 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV
|
echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV
|
||||||
echo "GTSAM Uses TBB"
|
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)
|
- name: Build (Linux)
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ private:
|
||||||
template<class Archive>
|
template<class Archive>
|
||||||
void load(Archive& ar, const unsigned int /*version*/)
|
void load(Archive& ar, const unsigned int /*version*/)
|
||||||
{
|
{
|
||||||
|
this->clear();
|
||||||
// Load into STL container and then fill our map
|
// Load into STL container and then fill our map
|
||||||
FastVector<std::pair<KEY, VALUE> > map;
|
FastVector<std::pair<KEY, VALUE> > map;
|
||||||
ar & BOOST_SERIALIZATION_NVP(map);
|
ar & BOOST_SERIALIZATION_NVP(map);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <gtsam/inference/Key.h>
|
#include <gtsam/inference/Key.h>
|
||||||
|
|
||||||
|
#include <gtsam/base/ConcurrentMap.h>
|
||||||
#include <gtsam/base/Matrix.h>
|
#include <gtsam/base/Matrix.h>
|
||||||
#include <gtsam/base/MatrixSerialization.h>
|
#include <gtsam/base/MatrixSerialization.h>
|
||||||
#include <gtsam/base/Vector.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()));
|
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
|
# 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")
|
file(GLOB GTSAM_PYTHON_TEST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/tests/*.py")
|
||||||
foreach(test_file ${GTSAM_PYTHON_TEST_FILES})
|
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()
|
endforeach()
|
||||||
file(GLOB GTSAM_PYTHON_UTIL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/utils/*.py")
|
file(GLOB GTSAM_PYTHON_UTIL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/gtsam/utils/*.py")
|
||||||
foreach(util_file ${GTSAM_PYTHON_UTIL_FILES})
|
foreach(util_file ${GTSAM_PYTHON_UTIL_FILES})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue