feat(cpp-object-oriented-modular-refactoring): step 3 - foundation-google-style

This commit is contained in:
KOKO\Mimi
2026-08-16 04:26:14 +09:00
parent 2628ed3488
commit 042edadffb
93 changed files with 3144 additions and 3175 deletions
@@ -2,7 +2,7 @@
#include "fesa/assembly/parallel_for.hpp"
#include "fesa/results/results_writer.hpp"
#include "fesa/solvers/linear/mkl_pardiso_solver.hpp"
#include "fesa/solvers/linear/mkl_pardiso_solver.h"
#include <gtest/gtest.h>
@@ -183,7 +183,7 @@ protected:
private:
fesa::Status record(const char* event) {
events_.emplace_back(event);
return fesa::Status::ok();
return fesa::Status::Ok();
}
std::vector<std::string> events_;
@@ -196,21 +196,21 @@ public:
explicit SpyLinearSolver(std::vector<std::string>& events)
: events_{events} {}
fesa::Status factorize(const fesa::SparseMatrix&) override {
fesa::Status Factorize(const fesa::SparseMatrix&) override {
++factorizeCalls_;
events_.emplace_back("solver-factorize");
return fesa::Status::ok();
return fesa::Status::Ok();
}
fesa::Status solve(
fesa::Status Solve(
const fesa::Vector& rhs, fesa::Vector& solution) const override {
++solveCalls_;
events_.emplace_back("solver-solve");
for (std::size_t index = 0U;
index < rhs.size() && index < solution.size(); ++index) {
index < rhs.Size() && index < solution.Size(); ++index) {
solution[index] = 0.0;
}
return fesa::Status::ok();
return fesa::Status::Ok();
}
int factorizeCalls() const noexcept { return factorizeCalls_; }
@@ -224,25 +224,25 @@ private:
class RecordingMklSolver final : public fesa::LinearSolver {
public:
fesa::Status factorize(const fesa::SparseMatrix& matrix) override {
fesa::Status Factorize(const fesa::SparseMatrix& matrix) override {
++factorizeCalls_;
factorizedDimension_ = matrix.rows();
if (matrix.rows() == 1U && matrix.columns() == 1U &&
matrix.values().size() == 1U) {
scalarStiffness_ = matrix.values()[0U];
factorizedDimension_ = matrix.Rows();
if (matrix.Rows() == 1U && matrix.Columns() == 1U &&
matrix.Values().size() == 1U) {
scalarStiffness_ = matrix.Values()[0U];
}
return backend_.factorize(matrix);
return backend_.Factorize(matrix);
}
fesa::Status solve(
fesa::Status Solve(
const fesa::Vector& rhs, fesa::Vector& solution) const override {
++solveCalls_;
if (rhs.size() == 0U) {
if (rhs.Size() == 0U) {
rhs_.clear();
} else {
rhs_.assign(rhs.data(), rhs.data() + rhs.size());
rhs_.assign(rhs.Data(), rhs.Data() + rhs.Size());
}
return backend_.solve(rhs, solution);
return backend_.Solve(rhs, solution);
}
int factorizeCalls() const noexcept { return factorizeCalls_; }
@@ -264,16 +264,16 @@ private:
class NonfiniteLinearSolver final : public fesa::LinearSolver {
public:
fesa::Status factorize(const fesa::SparseMatrix&) override {
return fesa::Status::ok();
fesa::Status Factorize(const fesa::SparseMatrix&) override {
return fesa::Status::Ok();
}
fesa::Status solve(
fesa::Status Solve(
const fesa::Vector&, fesa::Vector& solution) const override {
for (std::size_t index = 0U; index < solution.size(); ++index) {
for (std::size_t index = 0U; index < solution.Size(); ++index) {
solution[index] = (std::numeric_limits<double>::quiet_NaN)();
}
return fesa::Status::ok();
return fesa::Status::Ok();
}
};
@@ -289,7 +289,7 @@ public:
const std::vector<fesa::Diagnostic>&) override {
++writeCalls_;
events_.emplace_back("writer-write");
return fesa::Status::ok();
return fesa::Status::Ok();
}
int writeCalls() const noexcept { return writeCalls_; }
@@ -311,7 +311,7 @@ public:
shellElementCount_ = domain.shellElements().size();
state_ = std::make_unique<fesa::AnalysisState>(state);
diagnostics_ = diagnostics;
return fesa::Status::ok();
return fesa::Status::Ok();
}
const fesa::AnalysisState& state() const {
@@ -345,7 +345,7 @@ private:
TEST(LinearStaticCli, FactorizesBeforeLoadAndSolvesWithoutRefactorization) {
SpyAnalysis lifecycle;
const fesa::AnalysisRequest emptyRequest{};
ASSERT_TRUE(lifecycle.run(emptyRequest).isOk());
ASSERT_TRUE(lifecycle.run(emptyRequest).IsOk());
EXPECT_EQ(
lifecycle.events(),
(std::vector<std::string>{
@@ -369,7 +369,7 @@ TEST(LinearStaticCli, FactorizesBeforeLoadAndSolvesWithoutRefactorization) {
SpyResultsWriter writer{adapterEvents};
fesa::LinearStaticAnalysis analysis{serial, solver, writer};
ASSERT_TRUE(analysis.run({input, output}).isOk());
ASSERT_TRUE(analysis.run({input, output}).IsOk());
EXPECT_EQ(solver.factorizeCalls(), 1);
EXPECT_EQ(solver.solveCalls(), 1);
EXPECT_EQ(writer.writeCalls(), 1);
@@ -391,13 +391,13 @@ TEST(LinearStaticCli, RealPipelineHandlesAnalyticalAndNonzeroPrescription) {
fesa::LinearStaticAnalysis analysis{serial, solver, writer};
const auto status = analysis.run({input, output});
ASSERT_TRUE(status.isOk());
ASSERT_TRUE(status.IsOk());
EXPECT_EQ(writer.outputPath(), output);
EXPECT_EQ(writer.nodeCount(), 2U);
EXPECT_TRUE(writer.diagnostics().empty());
const auto& state = writer.state();
ASSERT_EQ(state.displacement().size(), 12U);
ASSERT_EQ(state.displacement().Size(), 12U);
EXPECT_EQ(state.identity().stepName, "Step-1");
EXPECT_EQ(state.identity().frameIndex, 0U);
@@ -427,7 +427,7 @@ TEST(Mitc4ShellCli, UsesExistingLifecycleAndExactlyOneFactorization) {
SpyResultsWriter writer{adapterEvents};
fesa::LinearStaticAnalysis analysis{serial, solver, writer};
ASSERT_TRUE(analysis.run({input, output}).isOk());
ASSERT_TRUE(analysis.run({input, output}).IsOk());
EXPECT_EQ(solver.factorizeCalls(), 1);
EXPECT_EQ(solver.solveCalls(), 1);
EXPECT_EQ(writer.writeCalls(), 1);
@@ -450,11 +450,11 @@ TEST(Mitc4ShellCli, AppliesKfcForNonzeroPrescribedDisplacement) {
fesa::LinearStaticAnalysis analysis{serial, solver, writer};
const auto status = analysis.run({input, output});
for (const auto& diagnostic : status.diagnostics()) {
EXPECT_TRUE(status.isOk())
for (const auto& diagnostic : status.Diagnostics()) {
EXPECT_TRUE(status.IsOk())
<< diagnostic.code << ": " << diagnostic.message;
}
ASSERT_TRUE(status.isOk());
ASSERT_TRUE(status.IsOk());
ASSERT_EQ(solver.factorizeCalls(), 1);
ASSERT_EQ(solver.solveCalls(), 1);
ASSERT_EQ(solver.factorizedDimension(), 1U);
@@ -467,7 +467,7 @@ TEST(Mitc4ShellCli, AppliesKfcForNonzeroPrescribedDisplacement) {
EXPECT_EQ(writer.nodeCount(), 4U);
EXPECT_EQ(writer.shellElementCount(), 1U);
const auto& state = writer.state();
ASSERT_EQ(state.displacement().size(), 24U);
ASSERT_EQ(state.displacement().Size(), 24U);
EXPECT_NEAR(state.displacement()[6U], 0.1, 1.0e-12);
EXPECT_NEAR(state.displacement()[12U], -1.0 / 110.0, 1.0e-12);
EXPECT_NEAR(state.verificationMetrics()[0U], 0.0, 1.0e-10);
@@ -491,8 +491,8 @@ TEST(Mitc4ShellCli, RejectsSingularAndAcceptsZeroByZeroFreeSystem) {
serial, singularSolver, singularWriter};
const auto singular = singularAnalysis.run(
{singularInput, directory.path() / "singular.h5"});
ASSERT_FALSE(singular.isOk());
EXPECT_EQ(singular.failureCategory(), fesa::FailureCategory::solver);
ASSERT_FALSE(singular.IsOk());
EXPECT_EQ(singular.Category(), fesa::FailureCategory::kSolver);
EXPECT_EQ(singularWriter.writeCalls(), 0);
RecordingMklSolver constrainedSolver;
@@ -501,7 +501,7 @@ TEST(Mitc4ShellCli, RejectsSingularAndAcceptsZeroByZeroFreeSystem) {
serial, constrainedSolver, constrainedWriter};
const auto constrained = constrainedAnalysis.run(
{constrainedInput, directory.path() / "constrained.h5"});
ASSERT_TRUE(constrained.isOk());
ASSERT_TRUE(constrained.IsOk());
EXPECT_EQ(constrainedSolver.factorizeCalls(), 1);
EXPECT_EQ(constrainedSolver.factorizedDimension(), 0U);
EXPECT_EQ(constrainedSolver.solveCalls(), 1);
@@ -523,10 +523,10 @@ TEST(Mitc4ShellCli, DoesNotWriteAnInvalidRecoveryCandidate) {
const auto status = analysis.run(
{input, directory.path() / "must-not-exist.h5"});
ASSERT_FALSE(status.isOk());
EXPECT_EQ(status.failureCategory(), fesa::FailureCategory::model);
ASSERT_FALSE(status.diagnostics().empty());
EXPECT_EQ(status.diagnostics().front().code, "nonfinite-recovery-value");
ASSERT_FALSE(status.IsOk());
EXPECT_EQ(status.Category(), fesa::FailureCategory::kModel);
ASSERT_FALSE(status.Diagnostics().empty());
EXPECT_EQ(status.Diagnostics().front().code, "nonfinite-recovery-value");
EXPECT_EQ(writer.writeCalls(), 0);
EXPECT_TRUE(adapterEvents.empty());
}