Clean up sparse_cholesky_test
Change-Id: I210d1181d4696b237094af1fa040064f293baa6a
diff --git a/internal/ceres/block_sparse_matrix.cc b/internal/ceres/block_sparse_matrix.cc
index f0dc11a..459d709 100644
--- a/internal/ceres/block_sparse_matrix.cc
+++ b/internal/ceres/block_sparse_matrix.cc
@@ -510,7 +510,7 @@
options.min_col_block_size, options.max_col_block_size);
std::uniform_int_distribution<int> row_distribution(
options.min_row_block_size, options.max_row_block_size);
- auto* bs = new CompressedRowBlockStructure();
+ auto bs = std::make_unique<CompressedRowBlockStructure>();
if (options.col_blocks.empty()) {
CHECK_GT(options.num_col_blocks, 0);
CHECK_GT(options.min_col_block_size, 0);
@@ -555,7 +555,7 @@
}
}
- auto matrix = std::make_unique<BlockSparseMatrix>(bs);
+ auto matrix = std::make_unique<BlockSparseMatrix>(bs.release());
double* values = matrix->mutable_values();
std::normal_distribution<double> standard_normal_distribution;
std::generate_n(
diff --git a/internal/ceres/sparse_cholesky_test.cc b/internal/ceres/sparse_cholesky_test.cc
index 2397fdd..7195c4f 100644
--- a/internal/ceres/sparse_cholesky_test.cc
+++ b/internal/ceres/sparse_cholesky_test.cc
@@ -77,9 +77,9 @@
return random_matrix;
}
-static bool ComputeExpectedSolution(const CompressedRowSparseMatrix& lhs,
- const Vector& rhs,
- Vector* solution) {
+bool ComputeExpectedSolution(const CompressedRowSparseMatrix& lhs,
+ const Vector& rhs,
+ Vector* solution) {
Matrix eigen_lhs;
lhs.ToDenseMatrix(&eigen_lhs);
if (lhs.storage_type() ==
@@ -167,11 +167,14 @@
class SparseCholeskyTest : public ::testing::TestWithParam<Param> {};
TEST_P(SparseCholeskyTest, FactorAndSolve) {
- const int kMinNumBlocks = 1;
- const int kMaxNumBlocks = 10;
- const int kNumTrials = 10;
- const int kMinBlockSize = 1;
- const int kMaxBlockSize = 5;
+ constexpr int kMinNumBlocks = 1;
+ constexpr int kMaxNumBlocks = 10;
+ constexpr int kNumTrials = 10;
+ constexpr int kMinBlockSize = 1;
+ constexpr int kMaxBlockSize = 5;
+
+ Param param = GetParam();
+
std::mt19937 prng;
std::uniform_real_distribution<double> distribution(0.1, 1.0);
@@ -179,7 +182,6 @@
++num_blocks) {
for (int trial = 0; trial < kNumTrials; ++trial) {
const double block_density = distribution(prng);
- Param param = GetParam();
SparseCholeskySolverUnitTest(::testing::get<0>(param),
::testing::get<1>(param),
::testing::get<2>(param),
@@ -302,16 +304,13 @@
using testing::Return;
TEST(RefinedSparseCholesky, StorageType) {
- auto* mock_sparse_cholesky = new MockSparseCholesky;
- auto* mock_iterative_refiner = new MockSparseIterativeRefiner;
- EXPECT_CALL(*mock_sparse_cholesky, StorageType())
+ auto sparse_cholesky = std::make_unique<MockSparseCholesky>();
+ auto iterative_refiner = std::make_unique<MockSparseIterativeRefiner>();
+ EXPECT_CALL(*sparse_cholesky, StorageType())
.Times(1)
.WillRepeatedly(
Return(CompressedRowSparseMatrix::StorageType::UPPER_TRIANGULAR));
- EXPECT_CALL(*mock_iterative_refiner, Refine(_, _, _, _)).Times(0);
- std::unique_ptr<SparseCholesky> sparse_cholesky(mock_sparse_cholesky);
- std::unique_ptr<SparseIterativeRefiner> iterative_refiner(
- mock_iterative_refiner);
+ EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _)).Times(0);
RefinedSparseCholesky refined_sparse_cholesky(std::move(sparse_cholesky),
std::move(iterative_refiner));
EXPECT_EQ(refined_sparse_cholesky.StorageType(),